Selenium 网络抓取受环境(云、docker、计算机)影响吗?

问题描述 投票:0回答:2

我有一个相当奇怪的问题,我无法解释。

背景:作为项目的一部分,我创建了一个网络抓取脚本(Selenium + Beautifulsoup),用于在 Linkedin 上检索法国数据专业(数据分析师、数据工程师、数据科学家等)的工作机会。

我在自己的计算机上构建了这个脚本,使用不显示页面的选项,以隐身模式打开网站(这样我就不必登录,否则搜索结果会受到他们的算法的影响)。

重要的是,它仅检索 24 小时内的工作机会。当脚本在我的计算机上运行时,我每天检索大约 300 个工作机会,包括所有职业。

作为项目的一部分,我在云提供商的虚拟机上运行此脚本。有趣的是,检索到的工作机会数量在 75 到 110 之间变化,但绝不会超过这个数字。

我尝试在 docker(在我的电脑上)上运行脚本来测试:从来没有超过 30 个工作机会被抓取。

你知道什么可能会影响这个吗?绝对没有配置元素从一个平台更改到另一个平台,它是具有相同选项的相同脚本,但获取相关搜索结果的能力似乎受到我不知道的东西的影响。有什么想法吗?

作为信息,我使用以下 Selenium 选项:

options.add_argument('--ignore-certificate-errors') 
options.add_argument('--incognito') 
options.add_argument('--headless') 
options.add_argument('--no-sandbox') 
options.add_argument('--disable-dev-shm-usage') 
options.add_argument('--lang=fr-FR') 
options.add_argument('--disable-features=MediaSessionService') 
options.add_argument('--disable-features=VizDisplayCompositor') 

显示搜索结果的 url 如下: {job_search.replace(' ', '%20')} 显示职位并启动搜索:

url = f "https://www.linkedin.com/jobs/search?keywords={job_search.replace(' ', '%20')}&location=France&locationId=&geoId=105015875&sortBy=R&f_TPR=r86400&position=1&pageNum=0" 

我没有给出完整的脚本,因为无论环境如何它都能正常运行,我的印象是问题可能与网络或其他东西有关。

python docker selenium-webdriver web-scraping cloud
2个回答
0
投票

我可能已经找到了问题的解决方案。

我使用的是 AWS EC2 实例 t2.micro,其网络性能为“低到中等”。

我将实例升级到具有“高达 5 Gigabit”网络性能的 t3.micro。

我不知道为什么,但现在它可以正常工作,就像我在自己的计算机上启动脚本一样。


-1
投票

我是爬行初学者。我的主管要求我分析LinkedIn中某个职位的流量信息,但我无法爬取他们的信息。您能分享一些您目前的想法吗?

© www.soinside.com 2019 - 2024. All rights reserved.