创建项目:
scrapy startproject myproject
cd myproject
创建一个spider
scrapy genspider spidername spiderurl.com
查看所有命令:
scrapy -h
全局命令:
startproject
settings
runspider
shell
fetch
view
version
项目命令:
crawl
check
list
edit
parse
genspider
bench
创建项目:
startproject
scrapy startproject myproject
查看模板:
scrapy genspider -l
(basic, crawl, csvfeed, xmlfeed)
在当前项目创建spider(使用模板: -t basic)
scrapy genspider [-t template] <spiderName> <spiderUrl>
运行spider
scrapy crawl myspidername
保存json文件.xml, .jl...
scrapy crawl myspider -o fileName.json
检查项目代码:
scrapy check [-l] [spider]
fetch查看网页返回内容:
scrapy fetch <url>
生成静态页面
scrapy view url
scrapy 终端
scrapy shell url
###
parse语法:
scrapy parse <url> [options]
settings: 查看设置
scrapy settings --get BOT_NAME
scrapy settings --get DOWNLOAD_DELAY
运行一个spider
runspider:
scrapy runspider myspider.py
选择器使用:
获取title标签(第一个)下的文本
response.selector.xpath('//title/text()').extract_first()
response.css('title::text').extract_first()
获取title标签(所有)下的文本
response.selector.xpath('//title/text()').extract()
获取子标签文本
<div id="images">
<a></a>
</div>
response.xpath('//div[@id="images"]/a/text()').extract_first()
获取属性
base标签的href属性
response.xpath('//base/@href').extract()
response.css('base::attr(href)').extract()
href包含image的
response.css('a[href*=image]::attr(href)').extract()
response.xpath('//a[contains(@href,"image")]/@href').extract()
a标签包含image的子标签img的src属性
response.xpath('//a[contains(@href,"image")]/img/@src').extract()
response.css('a[href*="image"] img::attr(src)').extract()
re选择器
response.xpath().re('Name:(.*)') 获取匹配 () 里面的所有, re_first()获取第一个
如果没有匹配返回None
也可以 .extract_first('自定义返回')
解决中文乱码问题: scrapy crawl zymkdouluodalu -o file.json -s FEED_EXPORT_ENCODING=utf-8