目录
Scrapy库的安装
Scrapy依赖于以下四个库文件,安装依赖文件如下:
- 第一个依赖库是lxml,安装命令:pip3 install lxml
- 第二个依赖库是pyOpenSSL,点击下载wheel文件 ,安装命令:pip3 install pyOpenSSL-19.1.0-py2.py3-none-any.whl
- 第三个依赖库是Twisted,点击下载 ,安装步骤是:pip3 install Twisted-18.7.0-cp37-cp37m-win_amd64.whl
-
第四个依赖库是pywin32,点击下载 ,双击下载的exe文件进行安装
安装完上面四个依赖库文件之后,执行命令安装Scrapy:pip3 install scrapy
创建并运行项目
第一步:执行以下命令创建一个项目
scrapy startproject project
创建项目的结构目录如下
- spiders:放置爬虫的目录,我们可以在该目录下创建爬虫的文件
- spiders/__init__.py:初始文件,无需修改
- __init__.py:初始文件,无需修改
- items.py:用来定义数据的,使用相当于dict,Items代码模板(继承类),Items类代码模板,需要继承Scrapy库提供的Item的类,对于一般的例子,不需要用户编写这个文件
- middlewares.py:Middlewares代码模板(继续类),用户希望扩展middlewares的功能,需要把这些功能写到这个文件中,相当于钩子,可以对爬取前后做预处理,如修改请求header,url过滤等
- pipelines.py:用来处理数据的,Pipelines代码模板(继承类),处理spider模块分析好的结构化数据,如保存入库等
- settings.py:Scrapy爬虫的配置文件,如果希望优化爬虫功能。需要修改settings.py文件中对应的配置项
- scrapy.cfg:部署Scrapy爬虫的配置文件
可以将settings.py中的内容修改为如下,修改User_agent头和设置为不遵守rebots.txt规则
第二步:在 spiders 目录下执行以下命令创建爬虫文件
scrapy genspider Test www.baidu.com
然后会在 spiders 目录下创建爬虫文件Test.py,文件会有默认内容
Test.py文件解释如下
# -*- coding: utf-8 -*-
import scrapy
class TestSpider(scrapy.Spider): #这个类必须是继承scrapy.Spider类的子类
name = 'Test' #当前爬虫的名字叫demo,运行的时候指定的就是这个名字
allowed_domains = ['www.baidu.com'] #最开始用户提交给命令行的域名,指的这个爬虫在爬取网站的时候,只能爬取这个域名以下的相关文件
start_urls = ['http://www.baidu.com/'] #以列表包含的一个或多个url,就是scrapy框架所要爬取页面的初始页面
def parse(self, response): #解析页面的空方法,他可以解析从网络中爬取的内容,并且形成字典类型,同时还能够对网络中爬取的内容发现其中隐含的新的需要爬取的URL
pass
第三步:编写爬虫文件
编辑spiders下的Test.py爬虫文件,根据自己的需要编辑这个文件
# -*- coding: utf-8 -*-
import scrapy
class TestSpider(scrapy.Spider):
name = 'Test'
allowed_domains = ['www.baidu.com']
start_urls = ['http://www.baidu.com/']
def parse(self, response):
print(response)
第四步:运行爬虫
方法一:进入项目目录,执行以下命令运行
scrapy crawl Test
方法二:在项目最外层目录创建main.py文件,文件内容如下,然后执行点击运行就可以执行了
from scrapy import cmdline #导入cmdline模块,可以实现控制终端命令行。
cmdline.execute(['scrapy','crawl','Test']) #用execute()方法,输入运行scrapy的命令。