更新了爬虫部分的文档

pull/8/head
jackfrued 2018-06-08 16:31:02 +08:00
parent faba085c55
commit fe9e187fde
3 changed files with 41 additions and 1 deletions

View File

@ -86,7 +86,7 @@
- find / find_all字符串、正则表达式、列表、True、函数或Lambda。
- select_one / selectCSS选择器
> 说明更多内容可以参考BeautifulSoup的[官方文档]()。
> 说明更多内容可以参考BeautifulSoup的[官方文档](https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html)。
### 实例 - 获取知乎发现上的问题链接

View File

@ -138,6 +138,21 @@ $
return item
```
> 说明上面我们通过Scrapy提供的爬虫模板创建了Spider其中的rules中的LinkExtractor对象会自动完成对新的链接的解析该对象中有一个名为extract_link的回调方法。Scrapy支持用XPath语法和CSS选择器进行数据解析对应的方法分别是xpath和css上面我们使用了XPath语法对页面进行解析如果不熟悉XPath语法可以看看后面的补充说明。
到这里,我们已经可以通过下面的命令让爬虫运转起来。
```Shell
(venv)$ scrapy crawl movie
```
可以在控制台看到爬取到的数据,如果想将这些数据保存到文件中,可以通过`-o`参数来指定文件名Scrapy支持我们将爬取到的数据导出成JSON、CSV、XML、pickle、marshal等格式。
```Shell
(venv)$ scrapy crawl moive -o result.json
```
3. 在pipelines.py中完成对数据进行持久化的操作。
@ -187,6 +202,11 @@ $
return item
```
利用Pipeline我们可以完成以下操作
- 清理HTML数据验证爬取的数据。
- 丢弃重复的不必要的内容。
- 将爬取的结果进行持久化操作。
4. 修改settings.py文件对项目进行配置。

View File

@ -1,7 +1,27 @@
## Scrapy爬虫框架高级应用
### Spider的用法
在Scrapy框架中我们自定义的蜘蛛都继承自scrapy.spiders.Spider这个类有一系列的属性和方法具体如下所示
1. name爬虫的名字。
2. allowed_domains允许爬取的域名不在此范围的链接不会被跟进爬取。
3. start_urls起始URL列表当我们没有重写start_requests()方法时,就会从这个列表开始爬取。
4. custom_settings用来存放蜘蛛专属配置的字典这里的设置会覆盖全局的设置。
5. crawler由from_crawler()方法设置的和蜘蛛对应的Crawler对象Crawler对象包含了很多项目组件利用它我们可以获取项目的配置信息如调用crawler.settings.get()方法。
6. settings用来获取爬虫全局设置的变量。
7. start_requests()此方法用于生成初始请求它返回一个可迭代对象。该方法默认是使用GET请求访问起始URL如果起始URL需要使用POST请求来访问就必须重写这个方法。
8. parse()当Response没有指定回调函数时该方法就会被调用它负责处理Response对象并返回结果从中提取出需要的数据和后续的请求该方法需要返回类型为Request或Item的可迭代对象生成器当前也包含在其中因此根据实际需要可以用return或yield来产生返回值
9. closed():当蜘蛛关闭时,该方法会被调用,通常用来做一些释放资源的善后操作。
### 中间件的应用
#### 下载中间件
#### 蜘蛛中间件
### Scrapy对接Selenium