Python解决滑块验证,Scarpy框架采集数据到redis数据库!( 二 )

数据持久化# 方式一(不推荐)-1 parser解析函数,return 列表,列表套字典# 命令(支持:('json', 'jsonlines', 'jl', 'csv', 'xml', 'marshal', 'pickle')# 数据到aa.json文件中-2 scrapy crawl chouti -o aa.json# 代码:lis = []for div in div_list:content = div.select('.link-title')[0].textlis.append({'title':content})return lis# 方式二 pipline的方式(管道)-1 在items.py中创建模型类-2 在爬虫中chouti.py,引入,把解析的数据放到item对象中(要用中括号)-3 yield item对象-4 配置文件配置管道ITEM_PIPELINES = {# 数字表示优先级(数字越小,优先级越大)'crawl_chouti.pipelines.CrawlChoutiPipeline': 300,'crawl_chouti.pipelines.CrawlChoutiRedisPipeline': 301,}-5 pipline.py中写持久化的类spider_open# 方法,一开始就打开文件process_item # 方法,写入文件spider_close # 方法,关闭文件保存到文件# choutiaa.py 爬虫文件import scrapyfrom chouti.items import ChoutiItem# 导入模型类class ChoutiaaSpider(scrapy.Spider):name = 'choutiaa'# allowed_domains = ['https://dig.chouti.com/']# 允许爬取的域start_urls = ['https://dig.chouti.com//']# 起始爬取位置# 解析,请求回来,自动执行parse,在这个方法中解析def parse(self, response):print('----------------',response)from bs4 import BeautifulSoupsoup = BeautifulSoup(response.text,'lxml')div_list = soup.select('.link-con .link-item')for div in div_list:content = div.select('.link-title')[0].texthref = https://www.isolves.com/it/cxkf/yy/Python/2020-06-02/div.select('.link-title')[0].attrs['href']item = ChoutiItem()# 生成模型对象item['content'] = content# 添加值item['href'] = hrefyield item# 必须用yield# items.py 模型类文件import scrapyclass ChoutiItem(scrapy.Item):content = scrapy.Field()href = scrapy.Field()# pipelines.py 数据持久化文件class ChoutiPipeline(object):def open_spider(self, spider):# 一开始就打开文件self.f = open('a.txt', 'w', encoding='utf-8')def process_item(self, item, spider):# print(item)# 写入文件的操作
【Python解决滑块验证,Scarpy框架采集数据到redis数据库!】


推荐阅读