【问题标题】:why my start_request function is not calling my parse function in my scrapy program?为什么我的 start_request 函数没有在我的 scrapy 程序中调用我的解析函数?
【发布时间】:2021-05-27 12:05:46
【问题描述】:

我正在尝试抓取这个特定 IMDB 标题的评论。但由于某种原因, start_request 并没有单独为这个标题调用解析函数。对于另一个标题,它似乎有效。

代码示例:

class imdb(scrapy.Spider):
    name = 'imdb'
    
    def start_requests(self):
            c=("https://www.imdb.com/title/tt8217188/reviews")
           
            yield SeleniumRequest(
                url=c,
                wait_time=4,
                screenshot=True,
                callback=self.parse)
             
            

    def parse(self, response):
        print("done")
        

【问题讨论】:

  • 一切正常。有什么错误吗?

标签: python selenium-webdriver scrapy


【解决方案1】:

看来你懒得看文档了

https://github.com/clemfromspace/scrapy-selenium

不管怎样,试试这段代码

from scrapy_selenium import SeleniumRequest

class MyBotSpider(scrapy.Spider):
    name = 'mybot'

    custom_settings = {

        'SELENIUM_DRIVER_TYPE': 'executable',
        'SELENIUM_DRIVER_NAME': 'chrome',
        'SELENIUM_DRIVER_EXECUTABLE_PATH': r'c:\chromedriver.exe',
        'SELENIUM_DRIVER_ARGUMENTS':[],
        'DOWNLOADER_MIDDLEWARES': {
            'scrapy_selenium.SeleniumMiddleware': 800
        },
    }

    def start_requests(self):
       
        yield SeleniumRequest(
            url="https://www.imdb.com/title/tt8217188/reviews",
            wait_time=4,
            screenshot=True,
            callback=self.parse)
    
    def parse(self, response):
        self.logger.info("Here")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    • 2015-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多