记录Selenium Python访问浏览器时部分内容无法获取的解决方法

部分内容无法显示:
请添加图片描述

出现这种情况可能是浏览器对爬虫进行拦截,可以为webdriver添加浏览器设置。

# 进入浏览器设置
options = webdriver.ChromeOptions()
# 设置中文
options.add_argument('lang=zh_CN.UTF-8')
# 更换头部
options.add_argument('user-agent="Mozilla/5.0 (iPod; U; CPU iPhone OS 2_1 like Mac OS X; ja-jp) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5F137 Safari/525.20"')
driver = webdriver.Chrome("../driver/chromedriver", chrome_options=options)

添加浏览器设置后成功显示文本内容:
请添加图片描述
完整测试代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

# 进入浏览器设置
options = webdriver.ChromeOptions()
# 设置中文
options.add_argument('lang=zh_CN.UTF-8')
# 更换头部
options.add_argument('user-agent="Mozilla/5.0 (iPod; U; CPU iPhone OS 2_1 like Mac OS X; ja-jp) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5F137 Safari/525.20"')
#get直接返回,不再等待界面加载完成
desired_capabilities = DesiredCapabilities.CHROME
desired_capabilities["pageLoadStrategy"] = "none"

driver = webdriver.Chrome("../driver/chromedriver", chrome_options=options)
driver.implicitly_wait(10)
url = "https://cm.bing.com"
driver.get(url)

keyword = driver.find_element(By.XPATH, "//input[@id='sb_form_q']")
keyword.send_keys("xpath")
keyword.send_keys(Keys.ENTER)

items = driver.find_elements(By.XPATH, "//li[@class='b_algo']")

for item in items:
    a = item.find_element(By.TAG_NAME, "a")
    print(a.get_attribute("href"))
    print(a.text)
    
driver.quit()
### 启动浏览器实例 为了使用 PythonSelenium 启动浏览器实例,需先安装 `selenium` 库以及对应浏览器的驱动程序。对于 Chrome 浏览器而言,可以采用如下方式创建 WebDriver 实例: ```python from selenium import webdriver from selenium.webdriver.chrome.service import Service as ChromeService service = ChromeService(executable_path='/path/to/chromedriver') driver = webdriver.Chrome(service=service) ``` 上述代码通过指定路径加载 ChromeDriver 来初始化 Chrome 的 WebDriver 对象[^4]。 针对 Firefox 浏览器,则应准备 GeckoDriver 并按此方法操作: ```python from selenium import webdriver from selenium.webdriver.firefox.service import Service as FirefoxService service = FirefoxService(executable_path='/path/to/geckodriver') driver = webdriver.Firefox(service=service) ``` 这里同样指定了驱动文件的位置来启动 Firefox 浏览器实例[^3]。 当涉及到获取更详细的网络请求信息,可以通过设置特定的能力选项实现对浏览器行为的进一步控制: ```python from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities capabilities = DesiredCapabilities.CHROME.copy() capabilities['loggingPrefs'] = {'performance': 'ALL'} driver = webdriver.Chrome(desired_capabilities=capabilities) # 访问页面后可提取性能日志 logs = driver.get_log('performance') for log in logs: print(log) ``` 这段脚本展示了如何配置 Chrome记录其所有的性能日志数据,并读取这些日志条目[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值