centos模拟浏览器爬虫

《centos模拟浏览器爬虫》
//selenium安装
//官网教程:https://selenium-python.readthedocs.io/installation.html
#pip3 install selenium


firefox驱动包
https://github.com/mozilla/geckodriver/releases/
查看firefox相应的是64或32
https://github.com/mozilla/geckodriver/releases/download/v0.30.0/geckodriver-v0.30.0-linux64.tar.gz
tar -xvf geckodriver-v0.30.0-linux64.tar.gz
mv ./geckodriver /usr/bin


//查看最新的chromedriver版本,必须与chrom版本对应
https://sites.google.com/a/chromium.org/chromedriver/downloads
//最新版是
ChromeDriver 94.0.4606.41
#mv xxx/chromedriver /usr/bin/chromedriver


//chrom安装 版本必须与chromedriver版本对应
//最新版是
97.0.4692.99
Google官方源可能在中国无法使用,导致安装失败或者在国内无法更新,可以添加以下参数来安装,此方法安装的是最新版本的chrome
#yum -y install google-chrome-stable --nogpgcheck




https://www.chromedownloads.net/chrome32win-stable/
//因为无法安装旧版本,只能下载prm进行本地安装
(百度云:google-chrome-stable-87.0.4280.66-1.x86_64)
#rpm -ivh ./google-chrome-stable_current_x86_64.rpm 
----------------------------------------------
liberation-fonts 被 google-chrome-stable-87.0.4280.66-1.x86_64 需要
	libvulkan.so.1()(64bit) 被 google-chrome-stable-87.0.4280.66-1.x86_64 需要
----------------------------------------------
#yum -y install liberation-fonts
//查看缺失的包:
#yum provides */libvulkan.so.1
------------------------------------------------
vulkan-loader-1.2.189.0-1.el8.x86_64 : Vulkan ICD desktop loader
仓库        :appstream
匹配来源:
文件名    :/usr/lib64/libvulkan.so.1
-------------------------------------------------
//安装对应的包
#yum -y install vulkan-1.1.97.0-1.el7.x86_64
#rpm -ivh ./google-chrome-stable_current_x86_64.rpm 



//安装成功后测试:
#which google-chrome-stable
#google-chrome-stable -version //查看版本
/usr/bin/google-chrome-stable
#ln -s /usr/bin/google-chrome-stable /usr/bin/chrome




启动测试:
使用root用户启动chrome示例时会提示添加参数–no-sandbox
#chrome -no-sandbox http://baidu.com

#chrome --no-sandbox --remote-debugging-port=19222 --user-data-dir='/root/.config/google-chrome'   (默认)



浏览器多开(个人资料路径和端口不能相同)

1.检查当前用户目录的位置,在浏览器的地址栏中输入:chrome://version/
/root/.config/google-chrome/(如下图所示)

2.将用户的 /root/.config/google-chrome 目录复制一份,并命名为  google-chrome2

3.调用前关闭所有的浏览器(重要!首次时需要关闭)

4.多开浏览器,在命令行中输入:
第一个浏览器: (用户文件夹和端口必须不同!)
#chrome --no-sandbox  --no-first-run --disable-infobars --disable-breakpad --disable-translate --disable-hang-monitor --allow-running-insecure-content --disable-background-networking --incognito --no-default-browser-check --remote-debugging-port=19222 --user-data-dir='/root/.config/google-chrome' 

第二个浏览器: (用户文件夹和端口必须不同!)
#chrome  --no-sandbox --no-first-run --disable-infobars --disable-breakpad --disable-translate --disable-hang-monitor --allow-running-insecure-content --disable-background-networking --incognito --no-default-browser-check --remote-debugging-port=19223 --user-data-dir='/root/.config/google-chrome2' 

第三个浏览器:
chrome  --no-sandbox --no-first-run --disable-infobars --disable-breakpad --disable-translate --disable-hang-monitor --allow-running-insecure-content --disable-background-networking --incognito --no-default-browser-check --remote-debugging-port=19224 --user-data-dir='/root/.config/google-chrome3' 

5.禁止浏览器更新 --disable-background-networking

6.无痕模式
--incognito

7.不作默认浏览器检查
--no-default-browser-check

禁止自动更新

步骤1:关闭Chrome浏览器更新
要停止Chrome浏览器的自动更新,请采取以下操作之一:
在安装Chrome浏览器之前创建一个空的存储库:
$ sudo touch /etc/default/google-chrome
在/etc/default/google-chrome中添加以下行:
repo_add_once = false
步骤2:关闭Chrome浏览器组件更新(可选)
仅适用于Chrome浏览器组件。
即使你关闭了Chrome浏览器的自动更新,浏览器组件也不会自动停止更新,包括Widevine DRM(用于加密媒体)和Chrome更新恢复组件。如果要阻止这些组件更新,请禁用Chrome ComponentUpdatesEnabled策略。
使用你喜欢的JSON文件编辑器:
在你的etc/opt/chrome/policies/managed文件夹中创建一个JSON文件,命名为component_update.json。
在JSON文件中添加以下设置来关闭组件更新:
{“ComponentUpdatesEnabled”:“false”}
将更新部署到用户。
《centos模拟浏览器爬虫》

Xvfb 虚拟现实库 之 Python 虚拟桌面 pyvirtualdisplay

#pip3 install pyvirtualdisplay
options.add_argument(‘headless’) # 无浏览器模式
options.add_argument(‘window-size={}x{}’.format(width, height)) # 直接配置大小和set_window_size一样
options.add_argument(‘disable-gpu’) # 禁用GPU加速
options.add_argument(‘proxy-server={}’.format(self.proxy_server)) # 配置代理
options.add_argument(’–no-sandbox’) # 沙盒模式运行
options.add_argument(’–disable-setuid-sandbox’) # 禁用沙盒
options.add_argument(’–disable-dev-shm-usage’) # 大量渲染时候写入/tmp而非/dev/shm
options.add_argument(’–user-data-dir={profile_path}’.format(profile_path)) # 用户数据存入指定文件
options.add_argument('no-default-browser-check) # 不做浏览器默认检查
options.add_argument("–disable-popup-blocking") # 允许弹窗
options.add_argument("–disable-extensions") # 禁用扩展
options.add_argument("–ignore-certificate-errors") # 忽略不信任证书
options.add_argument("–no-first-run") # 初始化时为空白页面
options.add_argument(’–start-maximized’) # 最大化启动
options.add_argument(’–disable-notifications’) # 禁用通知警告
options.add_argument(’–enable-automation’) # 通知(通知用户其浏览器正由自动化测试控制)
options.add_argument(’–disable-xss-auditor’) # 禁止xss防护
options.add_argument(’–disable-web-security’) # 关闭安全策略
options.add_argument(’–allow-running-insecure-content’) # 允许运行不安全的内容
options.add_argument(’–disable-webgl’) # 禁用webgl
options.add_argument(’–homedir={}’) # 指定主目录存放位置
options.add_argument(’–disk-cache-dir={临时文件目录}’) # 指定临时文件目录
options.add_argument(‘disable-cache’) # 禁用缓存
options.add_argument(‘excludeSwitches’, [‘enable-automation’]) # 开发者模式
点赞

发表评论

邮箱地址不会被公开。 必填项已用*标注