Python Selenium 请求头User-Agent的设置

  • A+
所属分类:Python

一、chromeOptions相关配置
chromeOptions 是一个配置 chrome 启动是属性的类。通过这个类,我们可以为chrome配置如下参数(这个部分可以通过selenium源码看到):

1.设置 chrome 二进制文件位置 (binary_location)
2.添加启动参数 (add_argument)
3.添加扩展应用 (add_extension, add_encoded_extension)
4.添加实验性质的设置参数 (add_experimental_option)
5.设置调试器地址 (debugger_address)

# .\Lib\site-packages\selenium\webdriver\chrome\options.py
class Options(object):
def __init__(self):
self._binary_location = '' # 设置 chrome 二进制文件位置
self._arguments = [] # 添加启动参数
self._extension_files = [] # 添加扩展应用
self._extensions = []
self._experimental_options = {} # 添加实验性质的设置参数
self._debugger_address = None # 设置调试器地址

1、 模拟移动设备

  1. # 通过设置user-agent,用来模拟移动设备
  2. user_ag='MQQBrowser/26 Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; MB200 Build/GRJ22; '+
  3. 'CyanogenMod-7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'
  4. options.add_argument('user-agent=%s'%user_ag)
  5. #option.add_argument('--user-agent=iphone')

2、禁止图片加载

  1. from selenium import webdriver
  2. options = webdriver.ChromeOptions()
  3. prefs = {"profile.managed_default_content_settings.images": 2}
  4. options.add_experimental_option("prefs", prefs)
  5. driver = webdriver.Chrome(chrome_options=chrome_options)
  6. #或者 使用下面的设置, 提升速度
  7. options.add_argument('blink-settings=imagesEnabled=false')

 3、 添加代理

  1. from selenium import webdriver
  2. # 静态IP:102.23.1.105:2005
  3. PROXY = "proxy_host:proxy:port"
  4. options = webdriver.ChromeOptions()
  5. desired_capabilities = options.to_capabilities()
  6. desired_capabilities['proxy'] = {
  7. "httpProxy": PROXY,
  8. "ftpProxy": PROXY,
  9. "sslProxy": PROXY,
  10. "noProxy": None,
  11. "proxyType": "MANUAL",
  12. "class": "org.openqa.selenium.Proxy",
  13. "autodetect": False
  14. }
  15. driver = webdriver.Chrome(desired_capabilities = desired_capabilities)

4.浏览器启动时安装crx扩展

  1. # -*- coding=utf-8 -*-
  2. from selenium import webdriver
  3. option = webdriver.ChromeOptions()
  4. option.add_extension('d:\crx\AdBlock_v2.17.crx') # 自己下载的crx路径
  5. driver = webdriver.Chrome(chrome_options=option)
  6. driver.get('http://www.taobao.com/')

5.加载所有Chrome配置

用Chrome地址栏输入chrome://version/,查看自己的“个人资料路径”,然后在浏览器启动时,调用这个配置文件,代码如下:

  1. #-*- coding=utf-8 -*-
  2. from selenium import webdriver
  3. option = webdriver.ChromeOptions()
  4. p=r'C:\Users\Administrator\AppData\Local\Google\Chrome\User Data'
  5. option.add_argument('--user-data-dir='+p) # 设置成用户自己的数据目录
  6. driver = webdriver.Chrome(chrome_options=option)

6.携带Cookie  通过使用Chrome选项保持所有登录在会话之间持久user-data-dir

  1. chrome_options = Options()
  2. chrome_options.add_argument("user-data-dir=selenium")
  3. driver = webdriver.Chrome(chrome_options=chrome_options)
  4. driver.get("http://www.baidu.com")

7、 其他

  1. # -*- coding: utf-8 -*-
  2. from selenium import webdriver
  3. options = webdriver.ChromeOptions()
  4. #谷歌无头模式
  5. options.add_argument('--headless')
  6. options.add_argument('--disable-gpu')#谷歌文档提到需要加上这个属性来规避bug
  7. options.add_argument('disable-infobars')#隐藏"Chrome正在受到自动软件的控制"
  8. options.add_argument('lang=zh_CN.UTF-8') # 设置中文
  9. options.add_argument('window-size=1920x3000') # 指定浏览器分辨率
  10. options.add_argument('--hide-scrollbars') # 隐藏滚动条, 应对一些特殊页面
  11. options.add_argument('--remote-debugging-port=9222')
  12. options.binary_location = r'/Applications/Chrome' #手动指定使用的浏览器位置
  13. # 更换头部
  14. user_agent = (
  15. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) " +
  16. "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36"
  17. )
  18. options.add_argument('user-agent=%s'%user_agent)
  19. #设置图片不加载
  20. prefs = {
  21. 'profile.default_content_setting_values': {
  22. 'images': 2
  23. }
  24. }
  25. options.add_experimental_option('prefs', prefs)
  26. #或者 使用下面的设置, 提升速度
  27. options.add_argument('blink-settings=imagesEnabled=false')
  28. #设置代理
  29. options.add_argument('proxy-server=' +'192.168.0.28:808')
  30. driver = webdriver.Chrome(chrome_options=options)
  31. #设置cookie
  32. driver.delete_all_cookies()# 删除所有的cookie
  33. driver.add_cookie({'name':'ABC','value':'DEF'})# 携带cookie打开
  34. driver.get_cookies()
  35. # 通过js新打开一个窗口
  36. driver.execute_script('window.open("https://www.baidu.com");')
  1. 二、chrome地址栏命令
  2.   about:version - 显示当前版本
  3.   about:memory - 显示本机浏览器内存使用状况
  4.   about:plugins - 显示已安装插件
  5.   about:histograms - 显示历史记录
  6.   about:dns - 显示DNS状态
  7.   about:cache - 显示缓存页面
  8.   about:gpu -是否有硬件加速
  9.   about:flags -开启一些插件 //使用后弹出这么些东西:“请小心,这些实验可能有风险”,不知会不会搞乱俺的配置啊!
  10.   chrome://extensions/ - 查看已经安装的扩展
  11. 三、 chrome实用参数
  12.   –user-data-dir=”[PATH]” 指定用户文件夹User Data路径,可以把书签这样的用户数据保存在系统分区以外的分区。
  13.   –disk-cache-dir=”[PATH]“ 指定缓存Cache路径
  14.   –disk-cache-size= 指定Cache大小,单位Byte
  15.   –first run 重置到初始状态,第一次运行
  16.   –incognito 隐身模式启动
  17.   –disable-javascript 禁用Javascript
  18.   –omnibox-popup-count=”num” 将地址栏弹出的提示菜单数量改为num个。我都改为15个了。
  19.   –user-agent=”xxxxxxxx” 修改HTTP请求头部的Agent字符串,可以通过about:version页面查看修改效果
  20.   –disable-plugins 禁止加载所有插件,可以增加速度。可以通过about:plugins页面查看效果
  21.   –disable-javascript 禁用JavaScript,如果觉得速度慢在加上这个
  22.   –disable-java 禁用java
  23.   –start-maximized 启动就最大化
  24.   –no-sandbox 取消沙盒模式
  25.   –single-process 单进程运行
  26.   –process-per-tab 每个标签使用单独进程
  27.   –process-per-site 每个站点使用单独进程
  28.   –in-process-plugins 插件不启用单独进程
  29.   –disable-popup-blocking 禁用弹出拦截
  30.   –disable-plugins 禁用插件
  31.   –disable-images 禁用图像
  32.   –incognito 启动进入隐身模式
  33.   –enable-udd-profiles 启用账户切换菜单
  34.   –proxy-pac-url 使用pac代理 [via 1/2]
  35.   –lang=zh-CN 设置语言为简体中文
  36.   –disk-cache-dir 自定义缓存目录
  37.   –disk-cache-size 自定义缓存最大值(单位byte
  38.   –media-cache-size 自定义多媒体缓存最大值(单位byte
  39.   –bookmark-menu 在工具 栏增加一个书签按钮
  40.   –enable-sync 启用书签同步
  41.   –single-process 单进程运行Google Chrome
  42.   –start-maximized 启动Google Chrome就最大化
  43.   –disable-java 禁止Java
  44.   –no-sandbox 非沙盒模式运行

1
 

selenium抓取chromedriver的network


1
 
  1. # -*- coding: utf-8 -*-
  2. from selenium import webdriver
  3. from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
  4. d = DesiredCapabilities.CHROME
  5. d['loggingPrefs'] = {'performance': 'ALL'}
  6. driver = webdriver.Chrome( desired_capabilities=d)
  7. driver.get("https://www.baidu.com")
  8. register = driver.find_element_by_partial_link_text("登录")
  9. register.click()
  10. for entry in driver.get_log('performance'):
  11. print(entry)
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: