- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 Google 图片抓取反向图片搜索的结果。
我的起始网址是 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
我考虑过;
这是我对 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 次重定向吗?第一个重定向对于结果是必需的,但第二个和第三个不是,并且给我错误的页面。
最佳答案
我想通了!我的错误在用户代理中。我以为我正在设置 User-Agent,但实际上我是在为发送到 Splash 的请求设置 header ,而不是为实际发送到我想抓取的页面的请求。
为了让它工作,我改变了
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
}
})
到
yield SplashRequest(url, self.parse, meta={
'cookiejar': i,
'wait': 0.5,
'splash': {
'args': {
'html': 1,
'png': 1,
}
},
}, headers={'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'})
关于python - 使用 Scrapy/Splash 抓取 Google 图像 - 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44021317/
正在构建一个使用一些 Azure 服务和 Scrapy-Splash 的 python Scrapy 应用程序。我尝试在本地 Windows 计算机中使用 scrapinghub/splash:lat
Unhandled promise rejection: Error: No native splash screen registered for given view controller. Ca
我使用这个 link 安装了 Splash .按照所有步骤进行安装,但 Splash 不起作用。 我的settings.py 文件: BOT_NAME = 'Teste' SPIDER_MODULES
我首先使用以下命令在 docker 上运行splash: docker run -p 8050:8050 scrapinghub/splash 当我转到端口 8050 并尝试渲染时: http://w
我使用了来自 repo 的完全相同的代码: https://github.com/pcess/tutorials/tree/master/SplashPermissions repo 中的独立应用程序
我有一个初始图像,它会在页面加载时随我的软件一起加载。 在窗口的当前大小(1024 像素)下,图像以居中方式加载,但是当窗口开始最大化时,它太靠左了。 这是我的CSS: #splash { wid
我有一个应用程序需要在启动前或在后台闲置一段时间后获取一些远程配置文件。我使用加载器 View Controller 来完成这项工作,同时显示带有加载指示器的初始屏幕。 显示加载程序的最佳方式是什么(
我正在尝试抓取 Google Scholar search results并获取与搜索匹配的每个结果的所有 BiBTeX 格式。现在我有一个带有 Splash 的 Scrapy 爬虫。我有一个 lua
我正在尝试将 scrapy 与启动和旋转代理一起使用。这是我的 settings.py: ROBOTSTXT_OBEY = False BOT_NAME = 'mybot' SPIDER_MODULE
我正在使用 FFMPEG 制作包含单个单色 JPG 图像的视频: ffmpeg -y -loop 1 -framerate 30 -t 5 -i SplashBW.jpg Splash.mp4 生成的
我正在尝试使用 fbi 为 Raspbian Stretch 提供启动画面。根据一些教程,我在这里找到了我的情况: /etc/systemd/system/splashscreen.service [
我正在使用Scrapy + Splash来爬网网页,并尝试从google广告横幅和其他广告中提取数据,但是我很难弄清楚要遵循xpath的方式。 我正在使用Scrpay-Splash API渲染页面,以
我已经成功使用此链接通过Tor运行Scrapy:http://pkmishra.github.io/blog/2013/03/18/how-to-run-scrapy-with-TOR-and-mul
我正在尝试抓取一个网站,但需要在所有页面中使用启动画面,因为它们的内容是动态创建的。现在它只呈现第一页,而不是内容页或分页页。 代码如下: import scrapy from scrapy_spla
我想在 Splash 随着时间结束时更改 viewController;我有这个: //Implementación de los métodos: - (void) cargaImagenes{
对于预先知道其个人资料 url 的几个 Disqus 用户中的每一个,我想抓取他们的姓名和他们的关注者的用户名。我正在使用 scrapy 和 splash 这样做。但是,当我解析响应时,它似乎总是在抓
我想做什么 在 avito.ru(俄罗斯房地产网站)上,某人的电话在您点击它之前是隐藏的。我想用Scrapy+Splash收集手机。 示例网址:https://www.avito.ru/moskva/
我正在尝试通过 Python 脚本调用 Splash 来呈现和抓取交互式网站,基本上遵循此 tutorial : import scrapy from scrapy_splash import Spl
我设法使用 scrapy+splash 连接到网站(感谢 this thread )。 我知道我已登录,因为我可以显示您登录后可用的一些元素。但是,当我尝试使用另一个 SplashRequest 访问
当我运行 cordova-splash 命令时出现此错误。获取未处理的错误事件 > > $ cordova-splash > > Checkin
我是一名优秀的程序员,十分优秀!