Selenium 安装

1、安装 chrome

wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
yum install ./google-chrome-stable_current_x86_64.rpm

2、安装 chromedriver

chrome官网
wget https://chromedriver.storage.googleapis.com/2.38/chromedriver_linux64.zip
淘宝源(推荐)
wget http://npm.taobao.org/mirrors/chromedriver/2.41/chromedriver_linux64.zip

将下载的文件解压,放在如下位置
unzip chromedriver_linux64.zip
mv chromedriver /usr/bin/
给予执行权限
chmod +x /usr/bin/chromedriver

chromedriver下载链接:
http://chromedriver.storage.googleapis.com/index.html

selenium+chromedriver +IP代理插件

针对有些动态网站,需要用到自动化测试工具。为了避免封IP保证抓取到数据,使用了IP代理;为了提高效率,想要设置成无界面模式,但是不管是windows下还是Linux下,一旦两者结合时,直接报错。

报错代码如下:

ERROR: Message: unknown error: failed to wait for extension background page to load: chrome-extension://ikenjahbofolbpinemlhbhdbifhniban/_generated_background_page.html
from unknown error: page could not be found: chrome-extension://ikenjahbofolbpinemlhbhdbifhniban/_generated_background_page.html

网上说报这个错的原因是因为浏览器无头模式 和 代理插件不兼容的原因,目前还没有很好的解决方法,但是可以走其他方式
1、安装Xvfb虚拟界面工具和xdpyinfo

yum install Xvfb -y
yum install xdpyinfo

2、安装Python虚拟桌面 pyvirtualdisplay

pip3 install pyvirtualdisplay

3、在chromedriver启动前启动一个显示器

from selenium import webdriver
from pyvirtualdisplay import Display
 
display = Display(visible=0, size=(800, 800))
display.start()

4、浏览器属性设置

# 此步骤很重要,设置为开发者模式,防止被各大网站识别出来使用了Selenium
        self.option.add_experimental_option('excludeSwitches', ['enable-automation'])
        self.option.add_experimental_option('useAutomationExtension', False)
        # self.option.add_argument('--user-agent=%s' % random.choice(ConfigHandle.AGENT_LIST))
        self.option.add_argument("--disable-blink-features=AutomationControlled")
        self.option.add_argument('blink-settings=imagesEnabled=false')  # 不加载图片, 提升速度
        self.option.add_extension(self.proxy_auth_plugin_path)  # 添加代理
        self.option.add_argument("start-maximized")  # 初始化就最大化
        self.option.add_argument('--disable-infobars')  # 禁用浏览器正在被自动化程序控制的提示
        self.option.add_argument('--headless')  # 浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败
        self.option.add_argument('--no-sandbox')  # 以最高权限运行
        self.option.add_argument('--disable-gpu')  # 规避bug
        self.option.add_argument('--disable-dev-shm-usage')
        self.option.add_argument("--disable-javascript")  # 禁用JavaScript
        self.option.add_argument('--incognito') # 隐身模式(无痕模式)
        self.option.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36")

 posted on 2022-10-16 15:43  Rannie`  阅读(410)  评论(0编辑  收藏  举报
去除动画
找回动画