【问题标题】:Scrapy-Spash not crawlingScrapy-Spash 不爬行
【发布时间】:2021-06-27 23:21:48
【问题描述】:

我正在尝试对通过以下链接搜索公司年度报告返回的链接进行非常基本的打印:https://www.mergentarchives.com/searchResults.php?searchType=annualReports&companyName=3Com+Corp.&compNumber=37958&aracompNumber=0

我需要使用 Splash 来呈现链接,因为这个网站是用 javascript 编写的并且搜索结果是动态加载的。当我尝试打印出链接列表时,刮板只是不会爬行。这是我非常简单的代码:

import scrapy
from scrapy_splash import SplashRequest

class MergentSpider(scrapy.Spider):
    name = 'mergent'
    start_urls = ['https://www.mergentarchives.com/searchResults.php?searchType=annualReports&companyName=3Com+Corp.&compNumber=37958&aracompNumber=0']


    def parse(self, response):
        url = response.url + "/searchResults.php?searchType=annualReports&companyName=3Com+Corp.&compNumber=37958&aracompNumber=0"
        yield SplashRequest(url=url, callback=self.start)
    
    def start(self,response):
        for document in response.css("a::attr(onclick"):
            print(document)

我已经添加了这些设置:

SPIDER_MIDDLEWARES = {
    'mergent_scraper.middlewares.MergentScraperSpiderMiddleware': 543,
    'scrapy_splash.SplashDeduplicateArgsMiddleware': 100,
}
DOWNLOADER_MIDDLEWARES = {
    'mergent_scraper.middlewares.MergentScraperDownloaderMiddleware': 543,
    'scrapy_splash.SplashCookiesMiddleware': 723,
    'scrapy_splash.SplashMiddleware': 725,
    'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware': 810,
}
SPLASH_URL = 'http://127.0.0.1:8050'
DUPEFILTER_CLASS = 'scrapy_splash.SplashAwareDupeFilter'
HTTPCACHE_STORAGE = 'scrapy_splash.SplashAwareFSCacheStorage'

我正在使用 docker 使用这个命令:

sudo docker run -it -p 8050:8050 --rm scrapinghub/splash

我做错了什么?为什么这只蜘蛛不会爬?

【问题讨论】:

    标签: python scrapy scrapy-splash


    【解决方案1】:

    该网站好像有登录信息?如果是这样,您需要查看:using-formrequest-from-response-to-simulate-a-user-login。爬虫不会知道有登录表单。

    一个快速的测试方法是使用scrapy shell,发送启动请求,看看你是否得到了你期望的页面。

    【讨论】:

      猜你喜欢
      • 2013-01-24
      • 2015-10-18
      • 2014-12-31
      • 2019-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-19
      相关资源
      最近更新 更多