安装
Linux/mac系统:
pip install scrapy(任意目录下)
Windows系统:
a. pip install wheel(任意目录下)
b. 下载twisted文件,下载网址如下: http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
c. 终端进入下载目录,执行 pip install Twisted‑17.1.0‑cp35‑cp35m‑win_amd64.whl
注意:如果该步骤安装出错,则换一个版本的whl文件即可
d. pip install pywin32
e. pip install scrapy 安装完以上依赖后才可以安装scrapy
f.执行scrapy ,验证是否安装完成
基本使用
创建项目
a.找到一个目录,执行以下命令:scrapy startproject scrapyProject,会生成一个名为scrapyProject,最后生成的结构如下:
```
scrapyProject # 项目所在文件夹, 建议用pycharm打开该文件夹
├── scrapyProject # 项目跟目录一样
│ ├── __init__.py
│ ├── items.py # 封装数据的格式
│ ├── middlewares.py # 所有中间件
│ ├── pipelines.py # 所有的管道
│ ├── settings.py # 爬虫配置信息
│ └── spiders # 爬虫文件夹, 里面会写入爬虫代码
│ └── __init__.py
└── scrapy.cfg # scrapy项目配置信息,不要做任何操作
```
创建爬虫爬虫文件
a.pycharm打开项目后,在terminal下执行:scrapy genspider 爬虫文件名 任意地址
如:scrapy genspider first www.xxx.com
创建成功后,会在爬虫文件夹(spiders)下生成一个叫first.py的爬虫文件
当前文件:D:\python_test\scrapyProject\scrapyProject\spiders\first.py
import scrapy
class FirstSpider(scrapy.Spider):
# name爬虫名称:爬虫文件唯一标识:可以使用该变量的值来定位到唯一的一个爬虫文件
name = 'first' # 无需改动
# allowed_domains = ['www.baidu.com'] # 允许的域名:scrapy只可以发起百度域名下的网络请求,一般不用
start_urls = ['https://www.baidu.com/', 'https://www.sogou.com'] # 起始的url列表:列表中存放的url可以被scrapy发起get请求
def parse(self, response):
'''
专门用作于数据解析
参数response:就是请求之后对应的响应对象
parse的调用次数,取决于start_urls列表元素的个数
'''
print('响应对象为:', response)
配置文件修改
当前文件:D:\python_test\scrapyProject\scrapyProject\settings.py
添加以下几个配置
ROBOTSTXT_OBEY = False # 不遵从robots协议
LOG_LEVEL = 'ERROR' #指定输出日志的类型
# 指定UA
USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36'
项目运行
在termainl终端下运行命令
scrapy crawl 爬虫名称 :该种执行形式会显示执行的日志信息(推荐)
scrapy crawl 爬虫名称 --nolog:该种执行形式不会显示执行的日志信息(一般不用)
例如:
scrapy crawl first