数据持久化# 方式一(不推荐)-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数据库!】
推荐阅读
- python爬取海量表情包,让你成为群里的斗图王
- 八种花茶配方解决上班族的小烦恼,花茶搭配
- 上厕所忘记带纸怎么处理?
- Linux运维遇到的基本问题解决大全
- Python+Pycharm+PyQT5可视化程序设计入门
- 到底怎么解决百度网站收录和快照更新呢?
- 金项链断了怎么修?这3种方法轻松解决
- Python初学者应避免的4个常见错误
- win10系统频繁死机如何解决
- 20年电脑老玩家,教你解决电脑卡顿问题。