【问题标题】:Hello, I am kind of new to scrapy, and I am try to scrape a particular site using scrapy but my scrapy program isn't returning anything您好,我是scrapy的新手,我正在尝试使用scrapy抓取特定网站,但我的scrapy程序没有返回任何内容
【发布时间】:2021-01-29 18:24:36
【问题描述】:

我已经四处寻找类似的问题,但我没有找到任何真正解决问题的方法。 这是我的代码:

import scrapy

 import csv

 class quotes(scrapy.Spider):

name='goodreads_quotes'
def get_response(self):
    site='https://www.goodreads.com/{}'
    start_urls=[site.format('quotes')]
    for number in range(1,11):
        start_urls.append(site.format(str(number)))
    yield [scrapy.requests(url=url, callback=self.get_quotes) for url in start_urls]
def get_quotes(self,response):
    quotes=response.css('div .quoteText::text').extract()
    for quote in quotes:
        print('-'*20)
        print(quote)
        csvfile=open('quote.csv','w+')
        csvfile.write(quote)
    csvfile.close()

我已经交叉检查了我的 CSS 选择器 使用:

 fetch("https://www.goodreads.com/quotes")
 response.css('div .quoteText::text').extract_first()

在scrapy终端中,似乎还可以

【问题讨论】:

    标签: python web-scraping scrapy


    【解决方案1】:
    import scrapy
    
    class quotes(scrapy.Spider):
        name='goodreads_quotes'
        # Makes primary request with default callback=self.parse
        start_urls = ['https://www.goodreads.com/quotes']
    
    def parse(self,response):
        quotes = response.css('div .quoteText::text').extract()
        for quote in quotes:
            # Scrapy generates result using Item instances. 
            # In simple cases it could be just simple dicts.
            item = {'quote': quote.strip()}
            yield item
    

    使用scrapy crawl goodreads_quotes -o quotes.csv 运行这个蜘蛛 Scrapy 自动处理以多种格式导出项目,例如 csv、json、jsonlines。您不需要手动编写它,这无论如何都会很痛苦,因为如果异步 Scrapy 性质。

    【讨论】:

    • 我尝试使用该命令运行代码,但我不断收到 [KeyError: 'Spider not found],我正在从正确的目录运行代码并且我也在使用正确的文件名,所以我不要认为问题出在那个区域。
    • 哦...我的错,忘了说它只适用于项目,不适用于单个蜘蛛。
    • 在单文件蜘蛛的情况下使用scrapy runspider filename.py
    • stackoverflow.com/questions/37607390/… 这里有更多细节。
    • 太棒了!!!,它成功了!!,我已经尝试了一段时间了,虽然还有一些小问题,但我会自己解决。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2015-12-21
    • 1970-01-01
    • 2013-05-09
    • 2020-10-12
    • 1970-01-01
    • 2014-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多