irpas技术客

Scrapy 项目 Item 数据基础使用_YKenan

irpas 3986

Scrapy 项目 Item 数据基础使用 1. 启用 item 管道2. 传值3. 保存数据4. 分组现象

1. 启用 item 管道

后面的数字是执行的级别, 数字越小越先执行.

2. 传值

Spider must return request, item, or None 传入值只支持这三种类型.

3. 保存数据 scrapy crawl csdn -o ./data/csdn/csdn.csv

4. 分组现象

scrapy.Request 方法

Request(url[, callback, method='GET', headers, body, cookies, meta, encoding='utf-8', priority=0, dont_filter=False, errback])

下面依次介绍这些参数。

url: (必选)请求页面的url地址,bytes或str类型,如’http://·'] # 开始的 URL start_urls = ['https://shixian.com/jobs'] def parse(self, response, **kwargs): div_list = response.xpath("//div[@class='job-list']/div") for div in div_list: item = { "title": div.xpath(".//h5/text()").extract_first().strip(), "type_": div.xpath(".//h5/span/text()").extract_first().strip(), "url": div.xpath("./div[1]/a/@href").extract_first().strip(), "content": div.xpath("./div[1]//p/text()").extract_first().strip(), "price": re.compile("\d+").findall(div.xpath(".//h4/text()").extract_first())[0], "period": div.xpath(".//dl[1]/dd[2]/text()").extract_first().strip(), "budget": div.xpath(".//dl[2]/dd[2]/text()").extract_first().strip(), "start_time": div.xpath(".//dl[3]/dd[2]/text()").extract_first().strip() } # 进入细节页 yield scrapy.Request( url="https://shixian.com/" + item["url"], # self.parse_detail 调用 parse_detail 方法 callback=self.parse_detail, # 向 self.parse_detail 传入参数 meta={ "item": item } ) # 下一页 next_url = response.xpath("//a[text()='?']/@href").extract_first() # 循环 if next_url is not None: yield scrapy.Request( url="https://shixian.com/" + next_url, callback=self.parse ) def parse_detail(self, response): item = response.meta["item"] item["name"] = response.xpath("//section[@class='user']//span/text()").extract_first().strip() item["address"] = response.xpath("//section[@class='company']/dl/dd[1]/span/text()").extract_first().strip() item["number"] = response.xpath("//section[@class='company']/dl/dd[2]/span/text()").extract_first().strip() item["financing"] = response.xpath("//section[@class='company']/dl/dd[3]/span/text()").extract_first().strip() yield item


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Scrapy #项目 #item #数据基础使用 #数据基础使用1