2.28Scrapy学习笔记
特定用法
-
页面解析函数是request对象中callback制定的回调函数,也就是我们在代码当中见到的parse函数,页面解析函数是实现Spider中最核心的部分
1.1它需要使用选择器(第三章)提取页面数据,将数据封装之后(Item或字典)提交给Scrapy引擎
1.2使用选择器或者LinkExtractor提取页面中的链接,用其构造新的request对象并提交给scrapy引擎(下载链接页面) -
关于如何提取数据、封装数据、提取链接的话题,我们在接下来的章节继续学习
第二章总结
本章内容
- 先讲解scrapy的框架结构和工作原理
- 介绍了scrapy中与页面下载相关的对象request和response
- 实现一个Spider的开发流程
第三章 使用selector提取数据
- 提取数据核心技术——HTTP文本解析
- 常用以下模块处理问题:beautifulsoup、lxml
创建对象、选中数据
使用如下代码创建对象,并且试着选中数据
from scrapy.selector import Selector
from scrapy.http import HtmlResponse
body='''
...<html>
... <body>
... <hl>Hello World</hl>
... <hl>Hello Scrapy</hl>
... <b>Hello python</hl>
... <ul>
... <li>C++</li>
... <li>Java</li>
... <li>Python</li>
... </ul>
... </body>
...</html>
'''
response=HtmlResponse(url='http://www.example.com/',body=body,encoding='utf8')
selector=Selector(response=response)
selector_list=selector.xpath('//hl')
调用Selector对象的xpath方法或css方法,可以选中文档中的某个或某些部分
可以在上面看到selector_list是一个列表了,我们可以用列表的操作访问它
5.
#for sel in selector_list:
# print(sel.xpath('./text()'))
#
#使用for语句观察selector_list的元素
selector.xpath('//ul').css('li').xpath('./text()')
#Out[25]:
#[<Selector xpath='./text()' data='C++'>,
# <Selector xpath='./text()' data='Java'>,
# <Selector xpath='./text()' data='Python'>]