Scrapy shell
Scrapy shell是用来调试scrapy项目代码的命令行工具
启动的时候预定义了scrapy的一些对象
作用:调试
设置shell
scrapy的shell是基于运行环境中的Python解释器shell
本质上就是通过命令调用shell,并在启动的时候预定义需要使用的对象
scrapy允许通过在项目配置文件“scrapy.cfg”中进行配置来制定解释器shell
例如:[settings]
shell = ipython
启动shell
启动scrapy shell的命令语法格式如下:
scrapy shell [url|file]
如:scrapy shell hr.tencent.com
url 就是你想要爬取的网址
注意:分析本地文件时一定要带上路径,scrapy shell默认当做url
#如果用scrapy genspider 名 url创建过,scrapy shell 即可,可以不用网址
常用操作方法
scrapy shell本质上就是个普通的Python shell,只不过提供了一些需要使用的对象,快捷方法便于我们调试
快捷方法:
shelp():帮助查看scrapy shell操作方法的
req = ‘请求的url’
fetch(req)
fetch(‘请求的url’) 效果同上两步
view(response)
scrapy对象:
crawler
spider
request
response
settings
Scrapy选择器
scrapy提供基于lxml库的解析机制,他们被称为选择器,因为他们“选择”由xpath或css表达式指定的HTML文档的某部分
scrapy选择器的API非常小,而且非常简单
构造选择器
scrapy 选择器是通过scrapy.Selector类,通过传递文本或者TextResponse对象构造的实例
他会根据输入类型自动选择最佳解析规则XML与HTML
In [3]: from scrapy.selector import Selector
In [4]: from scrapy.http import HtmlResponse
#从文本构造
In [5]: body = “good ”
In [6]: select = Selector(text=body)
#从响应构造
In [7]: response = HtmlResponse(url=‘http://example.com ’,body=body,encoding=‘utf-8’)
In [8]: select1 = Selector(response=response)
#为了方便,响应对象在selector属性上公开选择器
#在可能的情况下使用此快捷方式完全可以的
In [9]: response.selector.xpath(’//div’)
Out[9]: [ ]
In [10]: print(isinstance(response.selector,Selector))
True
使用选择器
选择器提供两个方法俩提取标签
xpath() 基于xpath的语法规则
css() 基于css选择器的语法规则
快捷方式
response.xpath()
response.css()
他们返回的选择器列表
提取文本:
selector.extract() 返回文本列表
selector.extract_first() 返回第一个selector的文本,没有返回None
可以设置default
嵌套选择器
有时候我们获取标签需要多次调用选择方法(.xpath()或.css())
response.css(“img”).xpath("@src")
selector还有一个.re ()方法使用正则表达式提取数据的方法
他返回字符串
他一般使用在xpath(),css()方法之后,用来过滤文本数据
re_first()用来返回第一个匹配的字符串如
response.xpath(’//a[contains(@href,“image”)]/text()’).re(r’Name:\s*(.*)’]
scrapy.Spider
运行流程
首先生成初始请求以爬取第一个url,并指定要使用从这些请求下载的响应调用的回调函数
在回调函数中,解析响应(网页)并返回,item对象,request对象或这些对象的可迭代的dicts
在回调函数中,通常使用选择器解析页面内容(但你也可以使用BeautifulSoup,lxml或你喜欢的任何机制)并使用解析的数据生成item
最后从spider返回的项目通常会持久保存到数据库(在某些项目管道中)或使用Feed导出写入文件
相关文章:
2021-12-10
2021-10-09
2021-10-30
2021-05-14
2021-05-29
2022-01-22
猜你喜欢
2021-07-24
2021-11-30
2021-10-29
2021-09-16
2021-06-30
2021-09-11
2021-12-03
相关资源
下载
2023-01-29
下载
2022-12-30
下载
2023-03-13