python3 Scrapy

运行爬虫脚本

例子: 脚本名:quotes_spider.py
import scrapy
class QuotesSpider(scrapy.Spider):
	name = 'quotes'
	start_urls = [
	    'http://quotes.toscrape.com/page/1/',
        'http://quotes.toscrape.com/page/2/',
	]

	def parse(self, response):
		for quote in response.css('div.quote'):
			yield {
				'text':	quote.css('span.text::text').extract_first(),
				'author': quote.css('small.author::text').extract_first(),
				'tags': quote.css('div.tags a.tag::text').extract()
			}

终端运行:
 scrapy crawl quotes
 //quotes是继承自scrapy类的QuotesSpider的属性名name
 //每个爬虫的name是唯一的 

存储爬虫的内容:

scrapy crawl quotes -o quotes.json //若连续运行2次且没有删除第一次生成的文件,会生成一个被损坏的json文件

使用json line格式:

scrapy crawl quotes -o quotes.jl //连续运行2次,会叠加第二次的内容到文件,不会出现json文件那样的损坏

scrapy shell: 尝试使用Scrapy shell选择器是学习抓取数据的好方式

scrapy shell "http://quotes.toscrape.com/page/1"
\>>> response.css('title')
    [<Selector xpath='descendant-or-self::title' data='<title>Quotes to Scrape</title>'>]
\>>> response.css('title::text').extract() //得到一个list
     ['Quotes to Scrape']
\>>> response.css('title').extract()
    ['<title>Quotes to Scrape</title>']
\>>> response.css('title::text').extract_frist() //只要list中的第一个元素
    'Quotes to Scrape'
\>>> response.css('title::text')[0].extract() //同上,另一种写法
     'Quotes to Scrape'

持续更新中...

转载于:https://my.oschina.net/moresir/blog/841091

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值