目录
2.from xiaozhu.items import XiaozhuItem #导入定义爬虫字段:
8.以 csvfeed 模板创建一个 mycsvspider.py 文件,在 spider 目录下,最后为域名
1.项目创建:
命令行输入cd xx,xx为要创建在其中的爬虫项目
再输入scrapy startproject xxx,xxx为项目名字
2.from xiaozhu.items import XiaozhuItem #导入定义爬虫字段:
这里在运行会报错,但是不影响爬取结果不用管
3.Scrapy爬虫运行:
cmd切换到项目的xxxx文件夹,输入命令:
scrapy crawl xxxx,就可运行爬虫
scrapy crawl xxx --nolog 不输出日志
scrapy crawl xxx -s LOG_LEVEL=ERROR 之输出日志错误信息
4.代码调式
在项目文件 创建一个 main.py 代码
from scrapy.cmdline import execute
execute(['scrapy','crawl','stock','-o','item.json'])
等价为在项目文件夹下执行命令 ‘scrapy crawl stock -o item.json’,将爬取的数据导出到 items.py 中
在代码里可设置断点,然后选择 ‘Debug main’ 命令,进行调试,最后在 pycharm 中运行 ‘main’ 会有打印结果
5.写入csv命令
--output=路径/xxx.csv -s
6.打开一个页面并访问 Scrapy 命令
scrapy shell 页面网址
7.查看可用爬虫模板
scrapy genspider -l
8.以 csvfeed 模板创建一个 mycsvspider.py 文件,在 spider 目录下,最后为域名
scrapy genspider -t csvdeed mycsvfeed iqianyue.com
不指定模板,默认使用 basic
scrapy genspider xxx yyy,xxx 为 爬虫名,yyy 为域名
9.解析爬虫模板中给定的 url
scrapy parse --spider=爬虫名 url
10.保存指定文件格式
- scrapy crawl -o name items.json
- scrapy crawl -o name items.jl
- scrapy crawl -o name items.csv
- scrapy crawl -o name items.xml
json 与 json 行格式轻微的不同是,.json 文件是在一个大数组中存储的 json 对象,这以为这如果你有一个 1GB 文件,可能不得不在使用典型的解析器之前,将全部存入内存当中,而 .jl 是每行包含一个 json 对象,name 为爬虫名字
需要明确指定导出数据格式时,使用 -t 参数
scrapy crawl name -t csv books.data
指明导出路径,%(name)s,%(time)s 特殊变量,每次都输入很长的命令行不方便,可在配饰文件 setting.py 中设置
scrapy crawl name -o 'export_data/%(name)s/%(time)s.csv'
11.运行爬虫时指定爬取数量
scrapy crawl 爬虫名 -s CLOSESPIDER_ITEMCOUNT=90 指定爬取数量为90个
12.setting命令
语法:scrapy setting [option]
设定项目的一些参数
13.runspider命令
语法:scrapy runspider xxx.py
在未创建项目的情况下,运行一个编写好的 spider 模块
14.shell命令
语法:scrapy shell [url]
启动 scrapy shell
一般用于前期爬取实验
在此环境中已经闯进好了一些变量(对象和函数),以下几个为最为常用:
request
最近一次下载对应的 Requests 对象
response
最近一次下载对应的 Response 对象
fetch(req_or_url)
该函数用于下载页面,可传入一个 Request 对象或 url 字符串,调用后悔更新变量 request 和 response
view(response)
用于在浏览器中显示 response 中的页面,这是 scrapy 下载的页面,与用浏览器直接输入 url 打开的有时候不同,用这个更可靠
15.fetch命令
语法:scrapy fetch <url>
使用下载器下载给定的 url,并将获取到的内容送到标准输出
16.view命令
语法:scrapy view <url>
在浏览器中打开指定 url