我用selenium访问一个网址时,得到的网页与用浏览器正常打开的网址得到的网页不一致。用selenium访问时,只访问了url的路径,没有访问整个url,该怎么办才能访问完整的url?
from selenium.webdriver import Firefox
browser = Firefox()
browser.get('https://www.ozon.ru/product/futbolka-1-sht-1176419939/?advert=2dodqa5HSC1zewWpSP2iWYQQFgPKuHO2astalSev3Nj3t8KCE1h0CQaKBhIWM4xFue5OoGDZqSSFBIWFafHJZplv_FZ529xWT-Nab-LSStvD2EGdbBJiLj0TKurhlE599g-mEBhrSj7YStBWVSGnGKOJ-wAy-e8Z-zL-WpFMfIgtD7ExwMGqjS0z0Duy9rUBfIPO__0TBbvzsN3VRY4JDXGa4f7TLB_fj3GLmVRDmAykMfRf8Uj8efHeS2OU&avtc=1&avte=2&avts=1694676191&sh=2HPBJaonFA')
browser.implicitly_wait(20)
浏览器打开时,得到的页面
如果是用来学习的话,建议换一个大众一点的url例如百度http://www.baidu.com/
如果是需要抢购什么东西的话selenium很容易被拦截,建议用接口来处理
【以下回答由 GPT 生成】
问题的原因可能是Selenium默认使用了Firefox的"Safe Mode"来启动浏览器,这可能导致Selenium仅访问URL的路径而不是整个URL。
解决该问题的一种方法是手动启动Firefox浏览器,然后将其实例传递给Selenium。这样可以确保Selenium以完整的URL打开网页。
以下是修改后的代码片段:
from selenium.webdriver import Firefox
from selenium.webdriver.firefox.options import Options
options = Options()
options.headless = False # 设置为False可在可见的浏览器窗口中打开页面
# 查找Firefox的可执行文件路径,将路径替换为你的实际路径
firefox_path = '/usr/bin/firefox'
browser = Firefox(options=options, executable_path=firefox_path)
browser.get('https://www.ozon.ru/product/futbolka-1-sht-1176419939/?advert=2dodqa5HSC1zewWpSP2iWYQQFgPKuHO2astalSev3Nj3t8KCE1h0CQaKBhIWM4xFue5OoGDZqSSFBIWFafHJZplv_FZ529xWT-Nab-LSStvD2EGdbBJiLj0TKurhlE599g-mEBhrSj7YStBWVSGnGKOJ-wAy-e8Z-zL-WpFMfIgtD7ExwMGqjS0z0Duy9rUBfIPO__0TBbvzsN3VRY4JDXGa4f7TLB_fj3GLmVRDmAykMfRf8Uj8efHeS2OU&avtc=1&avte=2&avts=1694676191&sh=2HPBJaonFA')
browser.implicitly_wait(20)
要注意的是,你需要将firefox_path
变量替换为你的实际Firefox可执行文件的路径。
请尝试运行修改后的代码,看看是否问题解决了。如果还有其他问题,请随时提问。
【相关推荐】
你这个是登录后的吧