【发布时间】:2018-08-20 19:20:51
【问题描述】:
我正在努力使用 Scrapy 仅将“命中”输出到 json 文件。我是新来的,所以如果只有一个我应该查看的链接,那可能会有所帮助(我花了相当多的时间在谷歌上搜索,仍然在苦苦挣扎),尽管代码更正提示更受欢迎:)。
我正在学习 scrapy 教程 (https://doc.scrapy.org/en/latest/intro/overview.html) ,原始代码输出一个长列表,其中包括字段名称和输出,如“字段:输出”,其中同时出现空白和找到的项目。我只想包含找到的链接,并将它们不带字段名称输出到文件中。
对于我正在尝试的以下代码,如果我发出“scrapy crawl quotes2 -o quotes.json > output.json,它可以工作,但 quotes.json 始终为空白(即,包括如果我执行“scrapy crawl quotes2 - o 引号.json")。
在这种情况下,作为一个实验,如果字符串“Jane”在 URL 中(例如,/author/Jane-Austen),我只想返回 URL:
import scrapy
class QuotesSpider(scrapy.Spider):
name = "quotes2"
start_urls = [
'http://quotes.toscrape.com/tag/humor/',
]
def parse(self, response):
for quote in response.css('a'):
for i in quote.css('a[href*=Jane]::attr(href)').extract():
if i is not None:
print(i)
我已经尝试过“产量”和项目选项,但速度不够快,无法让它们发挥作用。我的长期目标是无需了解 html 树(这本身可能是错误的方法)即可访问网站,并在 URL 字符串中查找具有特定文本的 URL。
想法?我猜这并不太难,但超出了我的能力范围。
【问题讨论】:
标签: scrapy