中文名:抓取
一个功能强大、快速、优秀的第三方库
它是软件结构与功能组件的结合,可以帮助用户快速实现爬虫。
Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。
Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,最新版本又提供了web2.0爬虫的支持。
使用管理员权限启动command控制台
\>pip install scrapy
输入指令查看所有scrpy命令
\>scrapy -h
出现以下界面则可视为安装成功
我们还可以通过指令查看帮助信息:
\>scrapy --help
命令提示符输出如下:
Scrapy框架常用命令:
我们本次实验只用到了startproject、genspider和crawl命令
5个主体部分:
已有的功能实现:
Engine 控制模块间的数据流、根据条件触发事件
Schedule 对所有爬取请求进行调度
Downloader 根据请求下载网页
需要配置实现:
Spiders 解析返回的响应、产生爬取项与新的爬取请求
Item Pipelines 清理、检验和查重爬取项中的数据与数据存储
2个中间键(可配置):
SpiderMiddleware 修改、丢弃、新增请求或爬取项
Downloader Middleware 修改、丢弃、新增请求或响应
1. Spiders向Engine发送网页信息爬取请求
2. Scheduler从Engine接收爬取请求并进行调度
3,4. Engine从Scheduler获得下一个网页信息爬取请求,通过中间键发送给Downloader
5,6. Downloader连接互联网爬取网页内容,形成响应(爬取内容)通过中间键与Engine发送给Spiders
7. Spiders处理获得的响应(爬取内容),形成爬取项与新的网页信息爬取请求发送给Engine
8. Engine将爬取项发送给Item Pipelines,将新的爬取请求发送给Scheduler进行调度,形成循环为数据处理与再次启动爬虫进行爬取提供数据。
1. 编写spider爬虫处理链接的爬取和网页解析
2. 编写pipeline处理解析后的股票数据并存储
使用管理员权限启动command控制台
\>pip install requests
\>pip install scrapy
====================================
接下来的工程我刚开始运行失败,后通过以下四步才得以运行
(视个人情况而定)
#先卸载scrapy框架
1. pip uninstall scrapy
#再卸载twisted框架
2. pip uninstall twisted
重新安装scrapy以及16.6.0版本的twisted
#先安装twisted框架
3. pip install twisted==16.6.0
#再安装scrapy,--no-deps指不安装依赖的twisted
4. pip install scrapy--no-deps
如仍不能运行可能需要安装pywin32模块
\>pip install pywin32
1. 转到目标目录
\>d:
\>cd pycodes
(注:目录位置不限定)
2. 生成BaiduStocks项目
\>scrapy startproject BaiduStocks
3. 修改当前目录
\>cd BaiduStocks
4. 生成stocks爬虫
\>scrapy genspider stocks baidu.com
配置stocks.py
修改对返回页面与新增的URL爬取请求的处理,使其解析返回的信息
配置pipelines.py
定义对爬取项的处理类
在settings.py找到以下代码块
将指向的pipelines修改为刚才定义的处理类BaidustocksInfoPipeline
使用管理员权限启动command控制台
修改当前路径:
\>d:
\>cd pycodes
\>cd BaiduStocks
运行爬虫
\>scrapy crawl stocks
运行结束会在BaiduStocks文件夹生成BaiduStockInfo.txt
内容如下
我们还可以采用Beautiful Soup库与Requests库通过requests-bs4-re技术路线制作股票数据爬虫
BeautifulSoup是Python的一个库,最主要的功能就是从网页爬取我们需要的数据。BeautifulSoup将html解析为对象进行处理,全部页面转变为字典或者数组,相对于正则表达式的方式,可以大大简化处理过程。
BeautifulSoup默认支持Python的标准HTML解析库,但是它也支持一些第三方的解析库:
解析库 |
使用方法 |
优势 |
劣势 |
Python标准库 |
BeautifulSoup(html,’html.parser’) |
Python内置标准库;执行速度快 |
容错能力较差 |
lxml HTML解析库 |
BeautifulSoup(html,’lxml’) |
速度快;容错能力强 |
需要安装,需要C语言库 |
lxml XML解析库 |
BeautifulSoup(html,[‘lxml’,’xml’]) |
速度快;容错能力强;支持XML格式 |
需要C语言库 |
htm5lib解析库 |
BeautifulSoup(html,’htm5llib’) |
以浏览器方式解析,最好的容错性 |
速度慢 |
目前公认的爬取网页最好的第三方库
简单,简洁,甚至只用一行代码就可以从网页上获得相关资源
Requests库的七个主要方法:
安装相关库,使用管理员权限启动command控制台
\>pip install beautifulsoup4
\>pip install requests
测试安装Requests库
出现以下界面则可视为成功安装Requests库
测试安装Beautiful Soup库
出现以下界面即可视为安装成功Beautiflu Soup库
在这里我们尝试使用PyCharm运行这个程序
PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。
首先我们需要新建工程
输入工程名点确定
在工程中点击右键新建python文件
输入python文件名,点击保存
导入bs4库与requests库
1.点击File->settings
2.选择Project Interpreter,点击右边绿色的加号添加包
3.输入你想添加的包名,点击Install Package
4.可以在Pycharm保存项目的目录下查看已经安装的包,路径D:\PycharmProjects\untitled\venv\Lib\site-packages(大致路径)
5.配置完成后,输入程序代码,点击上方的Run即可运行程序
BeautifulSoup库与Requests框架通过requests-bs4-re技术路线实现的爬虫执行速度相对较慢。
通过本次Python实验,我学习到了第三方库的安装与使用,深化了对PyCharm及IDLE的使用,对Scrapy框架、BeautifulSoup库与Requests框架以及requests-bs4-re技术路线有了进一步的认识,对正则表达式的编写和Python的程序结构也有了更深入的了解,增加了Python的编程经验。