使用:
(1):新建工程
scrapy startproject 工程名
(2):认识目录
doubanpro 工程总目录
doubanpro 项目目录
__pycache__ 缓存文件
spiders 爬虫目录
__pycache__ 缓存文件
__init__.py 包的标记
XXX.py 爬虫文件名(*)
__init__.py 包的标记
items.py 定义数据结构的地方(*)
middlewares.py 中间件
pipelines.py 管道文件,保存数据的地方(*)
settings.py 项目配置文件(*)
scrapy.cfg 工程配置文件,基本不用
(3):生成爬虫文件
cd 爬虫的工程名
scrapy genspider 爬虫名字 域名
(4):认识response对象
统一来到spiders文件夹里面运行
response.url 得到请求的url
response.text 得到响应的字符串内容
response.body 得到响应的字节内容
response.status 得到响应状态码
response.headers 得到响应头部
scrapy里面已经集成好了xpath和bs4,可以直接使用,但是和以前学习的略有不同
response.xpath() :里面写xpath路径
得到的都是selector对象,需要通过extract()提取
response.css() :里面写选择器
里面就是写选择器的,只能写选择器
获取文本:选择器::text
获取属性:选择器::attr(属性)
得到的也是selector对象,需要extract去提取
(5):运行,保存为指定格式文件
scrapy crawl douban -o douban.json
scrapy crawl douban -o douban.xml
scrapy crawl douban -o douban.csv
注意如果第一次导出csv需要配置一下,否则会出现空行的情况
完整的过程
a:定义数据结构
在items.py定义数据结构;定义数据结构创建的对象item使用方式和字典的方式一模一样
可以将item快速转换为字典
d = dict(item)
b:处理数据
配置文件开启管道
管道文件中将数据写入文件
不用输入scrapy crawl 执行命令的话需要新建一个start.py文件;然后:
from scrapy import cmdline
#第一种写法:
cmdline.execute(['scrapy','crawl','qiubaipro'])
#第二种写法:
cmdline.execute(('scrapy crawl qiubaipro'.split(' ')))
网友评论