Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
csdn_franckjun
Python-100-Days
提交
fe9e187f
P
Python-100-Days
项目概览
csdn_franckjun
/
Python-100-Days
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Python-100-Days
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
fe9e187f
编写于
6月 08, 2018
作者:
骆昊的技术专栏
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
更新了爬虫部分的文档
上级
faba085c
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
41 addition
and
1 deletion
+41
-1
Day66-75/02.数据采集和解析.md
Day66-75/02.数据采集和解析.md
+1
-1
Day66-75/Scrapy爬虫框架入门.md
Day66-75/Scrapy爬虫框架入门.md
+20
-0
Day66-75/Scrapy爬虫框架高级应用.md
Day66-75/Scrapy爬虫框架高级应用.md
+20
-0
未找到文件。
Day66-75/02.数据采集和解析.md
浏览文件 @
fe9e187f
...
...
@@ -86,7 +86,7 @@
-
find / find_all:字符串、正则表达式、列表、True、函数或Lambda。
-
select_one / select:CSS选择器
> 说明:更多内容可以参考BeautifulSoup的[官方文档]()。
> 说明:更多内容可以参考BeautifulSoup的[官方文档](
https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html
)。
### 实例 - 获取知乎发现上的问题链接
...
...
Day66-75/Scrapy爬虫框架入门.md
浏览文件 @
fe9e187f
...
...
@@ -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文件对项目进行配置。
...
...
Day66-75/Scrapy爬虫框架高级应用.md
浏览文件 @
fe9e187f
## 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
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录