中文文档:http://www.scrapyd.cn/doc/
Scrapy是采用Python开发的一个快速、高层次的屏幕抓取和web抓取框架。
什么是爬虫框架?
爬虫框架是实现爬虫功能的一个软件结构和功能组件集合。
爬虫框架是一个半成品,能够帮助用户实现专业网络爬虫。
应用Scrapy爬虫框架主要是编写配置型代码
Scrapy也是第三方库,需要安装
anaconda安装scrapy:conda install scrapy
安装完可以用 conda list 查看
scrapy常用命令 说明 格式
startproject 创建一个新工程 scrapy startproject <name> [dir]
genspider 创建一个爬虫 scrapy genspider [options] <name> <domain>
crawl 运行一个爬虫 scrapy crawl <spider>
settings 获得爬虫配置信息 scrapy settings [options]
list 列出工程中所有爬虫 scrapy list
shell 启动URL调试命令行 scrapy shell [url]
新建项目,在D:\pycharm\workspace目录:
scrapy startproject scrapy_demo
生成一个叫demo的爬虫:
cd sciapy_demo
scrapy genspider demo xxx
xxx 是模板中 start_urls 和 allowed_domains 的值
allowed_domains的含义是过滤爬取的域名,不在此范围内的域名就会被过滤,不会进行爬取。
allowed_domains没啥用,注释掉。
spiders目录下就生成了demo.py
打开demo.py,在这里编写爬虫
注释掉allowed_domains,start_urls填写要爬的网页(可以为多个),
我们来爬取 https://python123.io/ws/demo.html
在parse函数里写解析页面的代码,parse有个参数response
response就是爬取start_urls得到的返回值,response.body就是文本内容了
解析:(存储为文件‘demo.html’)
def parse(self, response):
filename = 'demo.html'
with open (filename, 'wb') as f:
f.write(response.body)
运行爬虫:
(crawl 这个 demo.py文件,D:\pycharm\workspace\scrapy_demo>)
scrapy crawl demo
结果:
scrapy爬虫步骤总结:
1. 首先新建项目
scrapy startproject scrapy_demo
2. 生成一个爬虫(爬虫名ant,网址xxx)
cd sciapy_demo
scrapy genspider ant xxx
3. 编写爬虫(/spiders/ant.py)
填url(start_url)
写解析页面(parse函数)
4. 运行爬虫
scrapy crawl demo
目录介绍:
scrapy_demo/ 工程名
scrapy.cfg 向服务器部署Scrapy爬虫的配置文件(不需要配置)
scrapy_demo/ app名,同python
spiders/
demo.py 生成的爬虫模板
__init__ .py 初始化脚本(不用管)
items.py Items代码模板(不用管)
middlewares.py Middlewares代码模板(如果要扩展middleware功能需要修改)
pipelines.py Pipelines代码模板
settings.py scrapy爬虫的配置文件(优化爬虫功能需要改)