首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Google为分页返回不同的布局

Google为分页返回不同的布局
EN

Stack Overflow用户
提问于 2021-04-20 02:24:22
回答 3查看 44关注 0票数 0

我正在使用硒和铬在谷歌上搜索。但是它返回了不同的分页布局。我正在使用不同的代理和使用fake_useragent库的不同的用户代理。

我只想要第二个图像布局。有没有人知道我怎么每次都能得到它?

First Image

Second Image

EN

回答 3

Stack Overflow用户

发布于 2021-04-21 06:20:52

问题是,即使我更新了数据库,fake_useragent库有时也会返回旧的用户代理。我尝试过这个库(https://pypi.org/project/latest-user-agents/),它返回较新的用户代理。

以下是工作代码。

代码语言:javascript
运行
复制
from latest_user_agents import get_latest_user_agents
import random
from selenium import webdriver

PATH = 'C:\Program Files (x86)\chromedriver.exe'

proxy = ''
url = ''

user_agent = random.choice(get_latest_user_agents())

options = webdriver.ChromeOptions()
options.add_argument(f'--proxy-server={proxy}')       
options.add_argument(f'user-agent={user_agent}')   

driver = webdriver.Chrome(PATH, options=options)  

driver.get(url)
票数 1
EN

Stack Overflow用户

发布于 2021-04-20 04:15:06

这两种布局的不同之处在于,当您禁用javascript时,Google会将分页显示为第一个图像布局。

为了确保每次都能得到第二个布局,您需要确保启用了javascript。

如果你有selenium提供的chrome驱动程序,比如:options = webdriver.ChromeOptions(),下面的代码将确保javascript始终处于启用状态:

代码语言:javascript
运行
复制
options.add_argument("--enable-javascript")

基于OP的注释的编辑

我是通过使用latest_user_agents库让它工作的。fake_useragent库有时会返回旧的用户代理。这就是为什么它会显示旧的布局。

安装latest_user_agents libraryhttps://pypi.org/project/latest-user-agents/

票数 0
EN

Stack Overflow用户

发布于 2021-04-21 12:33:32

嘿,不要试图通过自动化工具来自动化谷歌和谷歌产品,因为每天谷歌都在改变他们页面的网页和视图。

出于多种原因,不推荐使用WebDriver登录Gmail和Facebook等网站。除了违反这些网站的使用条款(您可能会面临帐户被关闭的风险)之外,它还很慢且不可靠。

理想的做法是使用电子邮件提供商提供的API,或者在Facebook的情况下使用开发人员工具服务,该服务公开用于创建测试帐户、朋友等的API。尽管使用API看起来像是一项额外的工作,但您将在速度、可靠性和稳定性方面得到回报。API也不太可能改变,而网页和HTML定位器经常改变,需要你更新你的测试框架。

在测试的任何时候使用WebDriver登录到第三方站点都会增加测试失败的风险,因为这会使测试变得更长。一个普遍的经验法则是,更长的测试更脆弱和不可靠。

符合W3C的WebDriver实现还会用WebDriver属性注释navigator对象,以便减轻拒绝服务攻击。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67167402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档