python爬虫之基于终端指令的持久化存储
scrapy持久化存储
基于终端指令:
1、要求:只可以将parse方法的返回值存储到本地的文本文件中
2、注意:持久化存储对应的文本文件类型只可以为:‘json’, ‘jsonlines’, ‘jsonl’, ‘jl’, ‘csv’, ‘xml’, ‘marshal’, ‘pickle’
3、指令:scrapy crawl xxx -o filePath
4、好处:简洁高效便捷
5、缺点:局限性比较强(数据只可以存储到指定后缀的文本文件中)
代码如下:
import scrapy
class QiushiSpider(scrapy.Spider):
name = "qiushi"
# allowed_domains = ["www.xxx.com"]
start_urls = ["https://www.qiushile.com/duanzi/"]
def parse(self, response):
#解析:段子标题+段子内容
li_list = response.xpath('//*[@id="ct"]/div[1]/div[2]/ul')
all_data = []
for li in li_list:
#xpath返回的是列表,但是列表元素一定是Selector类型的对象
#extract可以将Selector对象中data参数存储的字符串提取出来
# title = li.xpath('./li/div[2]/div[1]/a/text()')[0].extract()
title = li.xpath('./li/div[2]/div[1]/a/text()').extract_first()
#列表调用了extract之后,则表示将列表中每一个Selector对象中data对应的字符串提取了出来
content = li.xpath('./li/div[2]/div[2]//text()')[0].extract()
dic = {
'title':title,
'content':content
}
all_data.append(dic)
# print(title,content)
存储指令如下:
scrapy crawl qiushi -o ./qiushi.csv
标签:xpath,存储,title,python,爬虫,li,div,extract
From: https://blog.csdn.net/qq_55829395/article/details/140105091