本文主要是介绍python_爬虫 Feed exports,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
一、创建项目
二、 项目目录结构
三、项目代码
settings.py
start.py
items.py
fd.py
四、项目执行结果
fd.csv
quotes.jsonlines
五、参考
具体参数详见:
Feed exports
Feed exports 中文
本文是通过spider 项目,简单爬取 Quotes to Scrape 下的 text 和作者,并保存成 csv 和 jsonlines 格式的文件。
一、创建项目
1、执行命令行创建项目:
scrapy startproject feed
2、进入创建的项目:
cd feed
3、创建名字为 fd 的 spider 运访问的域名 quotes.toscrape.com:
scrapy genspider fd "quotes.toscrape.com"
二、 项目目录结构
如下是最终项目目录结构截图:
三、项目代码
settings.py
设置是否遵循 reboot 协议
# Obey robots.txt rules
ROBOTSTXT_OBEY = False
start.py
项目根目录下创建 start.py 文件,用去执行 scrapy crawl fd 命令
from scrapy import cmdlinecmdline.execute("scrapy crawl fd".split())
items.py
在items.py 文件夹下添加如下代码:
import scrapyclass QuotesItem(scrapy.Item):text = scrapy.Field()author = scrapy.Field()
fd.py
spiders文件夹下的 fd.py 文件代码如下:
import scrapy
from feed.items import QuotesItemclass FdSpider(scrapy.Spider):name = 'fd'allowed_domains = ['toscrape.com']start_urls = ['http://quotes.toscrape.com//']custom_settings = {'FEED_FORMAT': 'jsonlines','FEED_EXPORT_ENCODING': 'utf-8','FEED_URI': 'quotes.jsonlines','FEED_EXPORT_INDENT': 4,}# custom_settings = {# 'FEED_EXPORT_ENCODING': 'utf-8',# 'FEED_FORMAT': 'csv',# 'FEED_URI': '%(name)s.csv',# 'FEED_EXPORT_FIELDS': ['text','author']# }def __init__(self, category=None, *args, **kwargs):super(FdSpider, self).__init__(*args, **kwargs)self.start_urls = ['http://quotes.toscrape.com/tag/life/']def parse(self, response):quote_block = response.css('div.quote')for quote in quote_block:text = quote.css('span.text::text').extract_first()author = quote.xpath('span/small/text()').extract_first()# item = dict(text=text, author=author)item = QuotesItem()item['text'] = text[1:10] # 获取1~9个字符item['author'] = authoryield itemnext_page = response.css('li.next a::attr("href")').extract_first()if next_page is not None:yield response.follow(next_page, self.parse)
四、项目执行结果
fd.csv
quotes.jsonlines
五、参考
[Feed exports] - 数据导出配置详解
Feed exports
Feed exports 中文
目录
这篇关于python_爬虫 Feed exports的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!