scrapy总结
1.scrapy创建
scrapy startproject 名字
2.运行爬虫文件
scrapy crawl 名字
setting的设置
ROBOTSTXT_OBEY
robots 协议,也叫机器人协议它用来限定爬虫程序可以爬取的内容范围。
在 scrapy 项目的 settings.py 文件中,默认 ROBOTSTXT_OBEY = True ,即遵守此协议。当爬取内容不符合该协议且仍要爬取时设置 ROBOTSTXT_OBEY = False,不遵守此协议。
一般来说,我们在爬取信息的时候会将ROBOTSTXT_OBEY改为False。
SPIDER_MIDDLEWARES中间件
一般来说,在设置setting时将里面的中间件打开,中间件也可以进行更改。详细信息请参考官方文档。
Spider中间件(Middleware)官方文档
ITEM_PIPELINES,数据库
连接mysql数据库,在items里面创建mysql字段,然后再pipelines.py文件中写Mysql的逻辑代码。
Scrapy概述
#Windows平台
1、pip3 install wheel #安装后,便支持通过wheel文件安装软件,wheel文件官网:https://www.lfd.uci.edu/~gohlke/pythonlibs
3、pip3 install lxml
4、pip3 install pyopenssl
5、下载并安装pywin32:https://sourceforge.net/projects/pywin32/files/pywin32/
6、下载twisted的wheel文件:http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
7、执行pip3 install 下载目录\Twisted-17.9.0-cp36-cp36m-win_amd64.whl
8、pip3 install scrapy
#Linux平台
1、pip3 install scrapy
常用命令
#1 查看帮助
scrapy -h
scrapy <command> -h
#2 有两种命令:其中Project-only必须切到项目文件夹下才能执行,而Global的命令则不需要
Global commands:
startproject #创建项目
scrapy startproject amazon
genspider #创建爬虫程序 指定名称 限制爬取的网址
scrapy genspider amzon www.amzon.cn
settings #如果是在项目目录下,则得到的是该项目的配置
scrapy settings --get BOT_NAME
runspider #运行一个独立的python文件,不必创建项目
scrapy runspider amzon.py
shell #scrapy shell url地址 在交互式调试,如选择器规则正确与否
scrapy shell www.taobao.com
fetch #单纯地爬取一个页面,不打开浏览器,可以拿到请求头
scrapy fetch --nolog http://www.baidu.com 不输出日志
scrapy fetch --nolog --header http://www.baidu.com 不输出日志 只查看头信息
view #下载完毕后直接弹出浏览器,以此可以分辨出哪些数据是ajax请求
scrapy view http://www.baidu.com
version #scrapy version 查看scrapy的版本,scrapy version -v查看scrapy依赖库的版本
scrapy version -v
Project-only commands:
#必须先切换到对应的目录才能执行
crawl #运行爬虫,必须创建项目才行,确保配置文件中ROBOTSTXT_OBEY = False
scrapy crawl amzon
check #检测项目中有无语法错误
scrapy check
list #列出项目中所包含的爬虫名
scrapy list
edit #编辑器,一般不用
parse #scrapy parse url地址 --callback 回调函数 #以此可以验证我们的回调函数是否正确
bench #scrapy bentch压力测试
#3 官网链接
https://docs.scrapy.org/en/latest/topics/commands.html
目录结构
project_name/
scrapy.cfg
project_name/
__init__.py
items.py
pipelines.py
settings.py
spiders/
__init__.py
爬虫1.py
爬虫2.py
爬虫3.py
文件说明:
scrapy.cfg 项目的主配置信息,用来部署scrapy时使用,爬虫相关的配置信息在settings.py文件中。
items.py 设置数据存储模板,用于结构化数据,如:Django的Model
pipelines 数据处理行为,如:一般结构化的数据持久化
settings.py 配置文件,如:递归的层数、并发数,延迟下载等。强调:配置文件的选项必须大写否则视为无效,正确写法USER_AGENT='xxxx'
spiders 爬虫目录,如:创建文件,编写爬虫规则
注意:一般创建爬虫文件时,以网站域名命名
import sys,os
sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030')
在pycharm中运行爬虫程序
在项目目录下新建:entrypoint.py
from scrapy.cmdline import execute
execute(['scrapy', 'crawl', 'amzon'])