irpas技术客

scrapy框架,scrapy数据解析操作_绝望师哥

大大的周 4829

什么是框架

? ? ? ? 就是一个集成了很多功能并且具有很强的通用性的项目模板。

如何学习框架

? ? ? ? 专门学习框架封装的各种功能的详细用法。

什么是scrapy

? ? ? ? 爬虫中封装的一个异步爬虫明※框架。功能:高性能的持久化存储,异步的数据下载,高性能的数据解析,分布式

scrapy框架的基本使用

? ? ? ? 环境安装 mac or linux: pip install scrapy

? ? ? ? ? ? ? ? ? ? ? ? windows : pip install wheel

? ? ? ? ? ? ? ? ? ? ? ??下载twisted?https://· 域名就是douban.com) 运行爬虫文件命令: scrapy crawl 文件名

使用Anaconda:

? ? ? ? 用spyder 创建一个python项目

? ? ? ? 打开Anaconda prompt,? ? 输入 cd ?C:\Users\大哥\Desktop\python项目名称

????????scrapy startproject 项目名字

? ? ? ? cd??项目名字

? ? ? ? 在spyders子目录中创建一个爬虫文件

????????????????scrapy genspider 爬虫name?域名(比如·)

? ? ? ? ?执行工程:scrapy crawl 爬虫name?

import scrapy class FirstSpider(scrapy.Spider): #爬虫文件的名称:就是爬虫原文件的唯一标识 name = 'first' #允许的域名:用来限定start_urls 列表中哪些url可以进行请求发送,通常被注释掉 #allowed_domains = ['·'] #启示的url列表:该列表中存放的url 会被scrapy自动进行方式请求 start_urls = ['http://·/','http://·/'] #用作于数据解析,response参数就是请求成功后对应的响应对象,parse方法调用的次数等于请求的次数 def parse(self, response): #response表示的就是服务器返回的响应对象 print(response)

setting.py 中

更改? ?USER_AGENT? ??ROBOTSTXT_OBEY

LOG_LEVEL = 'ERROR'#打印错误类型的数据

?

USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36 Edg/92.0.902.62' # Obey robots.txt rules ROBOTSTXT_OBEY = False LOG_LEVEL = 'ERROR'

scrapy数据解析

? ? ? ? 使用:response.xpath()

? ? ? ? scrapy封装的xpath和etree中xpath的区别:

? ? ? ? ? ? ? ? scrapy中的xpath直接定位到标签类型中存储的值或者属性值取出,返回的是selector对象,且相关的数据值是存储selector对象中的data属性中,需要调用extract()、extract_first()取出的字符串数据。

scrapy 数据解析操作 import scrapy class QiubaiSpider(scrapy.Spider): name = 'qiubai' #allowed_domains = ['·'] start_urls = ['https://·/text/'] def parse(self, response): #作者的名称和段子的内容 div_list = response.xpath('//*[@id="content"]/div/div[2]/div') for div in div_list: #etree中的xpath返回的是字符串 #xpath返回的是列表,但是列表元素一定是selector类型的对象 #extract()可以将selector对象中的data参数存储的字符串提取出来 #author = div.xpath('./div[1]/a[2]/h2/text()')[0].extract() #返回的列表只有一个值时可以使用extract_first() author = div.xpath('./div[1]/a[2]/h2/text()').extract_first() #列表调用了extract()之后, #则表示将列表中的每一个selector对象中data对应的字符串提取出来,组成一个列表 content = div.xpath('./a[1]/div/span//text()').extract() content = ''.join(content) print(author,content) break


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

标签: #scrapy框架 #scrapy数据解析操作 #什么是框架