这两周在尝试使用scrapy爬数据,总结一下遇到的几个坎:
xpath使用
1、xpath().extract()返回的结果是数组,如果需要取第一个,就用extract_first(),否则就用下标取extract()[0];
2、xpath(‘//‘)表示从根搜索,xpath(‘.//‘)从当前节点搜索;
3、浏览器中查看xpath时要禁止javascript,防止数据是被javascript修改过的。
多层爬数据
1、先在parse中获取到下一层的链接detail_url
2、yield Request(url=detail_url, callback=self.parse_detail)进入下一层,其中parse_detal是下一层处理函数
3、如果还需要传递Item到下一层,就用Request(url=detail_url, meta:{“item”: item}, callback=self.parse_detail),获取时用response.meta[“item”]。
反反爬
1、将COOKIES_ENABLED设置为False;
2、将AUTOTHROTTLE全部打开。
爬火星网资讯
1 | from scrapy.spider import CrawlSpider |