频道栏目
首页 > 资讯 > 其他综合 > 正文

scrapy爬虫第一阶段——爬取多级url

17-01-13        来源:[db:作者]  
收藏   我要投稿

实验需要爬取一族pm2.5数据,纠结了几天爬虫,总算取得阶段性胜利,至少够项目用了

总结一下思想,就是首先设一个start url作为入口,爬到需要的url后将其链接传递到下一级parse,以此类推

原理再研究,会用先:

class DmozSpider(scrapy.spiders.Spider):
    name = "dmoz0" //爬虫名称,在每次调用爬虫时需要
    allowed_domains = ["www.tianqihoubao.com"] //注意这里非常重要,它定义整个搜索的范围,既往下的任何搜索都在这个域名的范围内,注:不是链接!
    start_urls = [
        "http://www.tianqihoubao.com/aqi/"
    ]            //这一部分设定起始url

    def parse(self, response):   //scrapy框架默认传入parse
        sel = Selector(response)
        sites = sel.xpath('//dl')
        url = "http://www.tianqihoubao.com"
        items = []
        for site in sites:
            provence = site.xpath('dt/b/text()').extract()
            print(provence)
            citys = site.xpath('dd/a')
            for city in citys:
                name = city.xpath('text()').extract()
                cityurl = city.xpath('@href').extract()
                cl = url + cityurl[0]
                item = CityItem()
                item['name'] = name
                item['url'] =url + cityurl[0]
                items.append(item)
                yield scrapy.Request(cl, callback=self.parse_item)     //yield生成请求,将新的url加入到爬取队列中,cl为url,callback为新的爬取调用的parse名称,这个项目新定义的为parse_item。
                print("000")
    def parse_item(self, response): 
         sell = Selector(response)
         sites = sell.xpath('//h2')
         print("999")
相关TAG标签
上一篇:你的微信小程序是成是败,就看这3点了
下一篇:Django官方文档write your first Django app --6
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站