【发布时间】:2017-10-16 16:58:45
【问题描述】:
我正在尝试使用 Google 图片抓取反向图片搜索的结果。
我的起始 URL 是 https://www.google.com/searchbyimage?image_url=DIRECT_IMAGE_URL,它在浏览器中按预期工作。
但是,当我尝试通过 Scrapy 抓取它时,请求被重定向 3 次,如图所示;
生成的网页看起来像
而不是结果页面。这是我的 Scrapy settings.py
SPLASH_URL = 'http://splash:8050'
DOWNLOADER_MIDDLEWARES = {
'scrapy_splash.SplashCookiesMiddleware': 723,
'scrapy_splash.SplashMiddleware': 725,
'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware': 810,
}
SPIDER_MIDDLEWARES = {
'scrapy_splash.SplashDeduplicateArgsMiddleware': 100,
}
DUPEFILTER_CLASS = 'scrapy_splash.SplashAwareDupeFilter'
HTTPCACHE_STORAGE = 'scrapy_splash.SplashAwareFSCacheStorage'
REDIRECT_MAX_TIMES = 2
HTTPCACHE_ENABLED = True
我考虑过;
- 缺少 Javascript - 所以我使用 Splash 来呈现页面
- Cookie - 我认为它有效?
- 设置最大重定向 - 无效
这是我对 SplashRequest 的调用;
yield SplashRequest(url, self.parse, meta={
'cookiejar': i,
'wait': 0.5,
'splash': {
'args': {
'html': 1,
'png': 1,
},
'splash_headers': {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11'
} # optional; a dict with headers sent to Splash
}
知道是什么导致了 3 次重定向吗?结果需要第一次重定向,但第 2 次和第 3 次则不需要,并且给了我错误的页面。
【问题讨论】:
标签: python scrapy screen-scraping splash-screen