【Python爬虫】selenium一些常用设置(Chrome、Firefox)

Chrome

from selenium import webdriver
import os

# 进入浏览器设置
options = webdriver.ChromeOptions()
# 谷歌无头模式
options.add_argument('--headless')
options.add_argument('--disable-gpu')
# 设置页面大小
options.add_argument('window-size=1200x600')
# 设置中文
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"')
# 设置代理
options.add_argument('proxy-server=' + proxy)
# 不加载图片
options.add_experimental_option('prefs', {"profile.managed_default_content_settings.images": 2})
# 设置下载路径
options.add_experimental_option('prefs', {"download.default_directory": os.path.abspath('数据\\')})
# 除去“正受到自动测试软件的控制”提示框
options.add_argument('disable-infobars')
# 打开开发者模式
options.add_experimental_option('excludeSwitches', ['enable-automation'])
# 不使用自动化扩展
options.add_experimental_option('useAutomationExtension', False)
# 去除selenium的一个指纹
browser.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
   "source": """
    Object.defineProperty(navigator, 'webdriver', {
      get: () => undefined
    })
  """
})
# 导入当前py文件目录下的chromedriver
executable_path = os.path.abspath('chromedriver.exe')

browser = webdriver.Chrome(executable_path=executable_path, chrome_options=options)
url = "https://httpbin.org/get?show_env=1"
browser.get(url)
# 设置浏览器窗口大小
browser.set_window_size(1552, 800)
# 删除原来的cookie
browser.delete_all_cookies()
# 添加cookie
browser.add_cookie({'name':'ABC','value':'DEF'})
# 刷新当前页面
browser.refresh()
# 通过js新打开一个窗口
page_js='window.open("https://www.baidu.com");'
browser.execute_script(page_js)
# 用js点击元素
button = browser.find_element_by_xpath('//*[@class="button"]')
browser.execute_script("$(arguments[0]).click()",button)
# 用js滑动滑动条
js = "var q=document.documentElement.scrollTop="
for i in range(1, 15):
     browser.execute_script(js + str(i * 100))
# 切换浏览器最新页面窗口
browser.switch_to.window(browser.window_handles[-1])
# 切换浏览器至第一个iframe框架
browser.switch_to.frame(1)
# 切换浏览器的弹出框 并点击同意
self.browser.switch_to.alert.accept()
# 浏览器窗口对象
browser.window_handles: list
# 关闭当前窗口
browser.close()
# 关闭浏览器
browser.quit()

利用Chrome DevTools协议。它允许客户检查和调试Chrome浏览器。

打开cmd,在命令行中输入命令:

chrome.exe --remote-debugging-port=9222 --user-data-dir="D:\selenum\AutomationProfile"

对于-remote-debugging-port值,可以指定任何打开的端口。

对于-user-data-dir标记,指定创建新Chrome配置文件的目录。它是为了确保在单独的配置文件中启动chrome,不会污染你的默认配置文件。

还有,不要忘了在环境变量中PATH里将chrome的路径添加进去。

此时会打开一个浏览器页面,我们输入淘宝网址,我们把它当成一个已存在的浏览器:
selenium通过设置代理,来监听该浏览器,从而控制浏览器,接管浏览器例子:

from selenium import webdriver
 
options = webdriver.ChromeOptions()
options.debugger_address = "127.0.0.1:9222"
browser = webdriver.Chrome(options=options)

Firefox

from selenium.webdriver.common.proxy import * 
# 代理
myProxy = '202.202.90.20:8080'
# 代理格式
proxy = Proxy({
  'proxyType': ProxyType.MANUAL, 
  'httpProxy': myProxy, 
  'ftpProxy': myProxy, 
  'sslProxy': myProxy, 
  'noProxy': ''
 })

profile = webdriver.FirefoxProfile()
profile = get_firefox_profile_with_proxy_set(profile, proxy)
profile.set_preference("general.useragent.override", user_agent)

# firefox无头模式
options = webdriver.FirefoxOptions()
options.add_argument('--headless')
options.add_argument('--disable-gpu')
options.add_argument('window-size=1200x600')
executable_path = os.path.abspath('geckodriver.exe')

driver=webdriver.Firefox(proxy=proxy, profile=profile, 
						 options=options, executable_path=executable_path) 
driver.get('https://www.baidu.com') 
driver.quit()

文件参考:https://blog.csdn.net/xc_zhou/article/details/80823855

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值