我正在按照教程@:https://blog.scrapinghub.com/category/scrapy-tips-from-the-pros/〜代码似乎执行正常,但我没有看到任何输出到终端..我仍然试图弄清楚如何使用“堆栈跟踪与python .. 。,查看后端是否存在问题“,问题是我在执行脚本后没有在终端中看到任何输出..任何帮助都会很棒..
import scrapy
class SpidyQuotesViewStateSpider(scrapy.Spider):
name = 'spidyquotes-viewstate'
start_urls = ['http://quotes.toscrape.com/search.aspx']
download_delay = 1.5
def parse(self, response):
for author in response.css('select#author > option ::attr(value)').extract():
yield scrapy.FormRequest(
'http://quotes.toscrape.com/filter.aspx',
formdata={
'author': author,
'__VIEWSTATE': response.css('input#__VIEWSTATE::attr(value)').extract_first()
},
callback=self.parse_tags
)
def parse_tags(self, response):
for tag in response.css('select#tag > option ::attr(value)').extract():
yield scrapy.FormRequest(
'http://quotes.toscrape.com/filter.aspx',
formdata={
'author': response.css(
'select#author > option[selected] ::attr(value)'
).extract_first(),
'tag': tag,
'__VIEWSTATE': response.css('input#__VIEWSTATE::attr(value)').extract_first()
},
callback=self.parse_results,
)
def parse_results(self, response):
for quote in response.css("div.quote"):
yield {
'quote': quote.css('span.content ::text').extract_first(),
'author': quote.css('span.author ::text').extract_first(),
'tag': quote.css('span.tag ::text').extract_first(),
}
答案 0 :(得分:1)
给定代码没有活动执行。这只不过是一个类定义。要获得输出,您需要继续在教程中编写一个驱动程序(主)程序,该程序将实例化该类的对象并进行一两次调用以实际刮取给定的网站。
除非您的程序崩溃(引发致命异常),否则您不会获得“堆栈跟踪”。这不是你实现和“使用”的东西。
答案 1 :(得分:0)
将文件保存在项目的Spider目录中,然后执行
scray crawl spidyquotes-viewstate -o viewstate.json
,结果将在当前目录的viewstate.json
中。