python+selenium动态抓取网页数据

摘要:
Increase speed option.add _ Argument('-link settings=imagesEnabled=false')#Google Docs提到需要添加此属性以避免错误选项。add _ arguments('-disable gpu')#添加变量配置浏览器=webdriver。Chrome(options=options)#访问百度浏览器。得到('http,

window+python+selenium

1.下载selenium

cmd pip3 instatll selenium

2.下载浏览器对应驱动版本

查看浏览器版本:chrome://version

python+selenium动态抓取网页数据第1张

驱动下载国外连接:http://chromedriver.storage.googleapis.com/index.html

驱动下载国内镜像连接(推荐):http://npm.taobao.org/mirrors/chromedriver/

python+selenium动态抓取网页数据第2张 

python+selenium动态抓取网页数据第3张

把此驱动放在python安装目录,与phthon.exe同级

python+selenium动态抓取网页数据第4张

编写代码及代码测试

from selenium import webdriver
'''
@Author: 马家立
@Date: 2020/12/22 17:00
@Description: 延时抓取动态网页数据
'''


print("开始爬取数据...")
option = webdriver.ChromeOptions()
# “no-sandbox”: 沙盒模式运行,以最高权限运行
option.add_argument('-no-sandbox')
# 大量渲染时候写入/tmp而非/dev/shm
option.add_argument('-disable-dev-shm-usage')
# “headless”:不用打开图形界面,若注释则会打开浏览器
option.add_argument('-headless')
# 不加载图片, 提升速度
option.add_argument('-blink-settings=imagesEnabled=false')
# 谷歌文档提到需要加上这个属性来规避bug
option.add_argument('-disable-gpu')
# 添加变量配置
browser = webdriver.Chrome(options=option)
# 访问百度
browser.get('http://www.baidu.com/')
# 打印标题
print(browser.title)
# 关闭浏览器
browser.quit()

python+selenium动态抓取网页数据第5张

Ps:ChromeOptions详情可见:https://www.jianshu.com/p/8ec70859ae03

Linux+python+selenium

1.下载selenium

pip3 instatll selenium

2.安装chrome

Linux 命令安装最新的 Google Chrome

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

或者下载到本地再安装

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

 安装必要的库

yum install mesa-libOSMesa-devel gnu-free-sans-fonts wqy-zenhei-fonts

3、安装及配置 chromedriver

Linux命令查看谷歌浏览器版本 

google-chrome --version

 python+selenium动态抓取网页数据第6张

Window下驱动下载:

驱动下载国外连接:http://chromedriver.storage.googleapis.com/index.html

驱动下载国内镜像连接(推荐):http://npm.taobao.org/mirrors/chromedriver/

 将下载好的Linux下chrome对应驱动上传至Linux服务器上

 python+selenium动态抓取网页数据第7张

推荐放在/usr/bin 目录下:

/usr/bin/chromedriver

 给予执行权限

chmod +x /usr/bin/chromedriver

配置环境变量

export PATH=$PATH:/usr/bin/chromedriver/

编写代码及代码测试

import platform
from selenium import webdriver
'''
@Author: 马家立
@Date: 2020/12/22 17:30
@Description: 延时抓取动态网页数据
'''


print("开始爬取数据...")
option = webdriver.ChromeOptions()
# “no-sandbox”: 沙盒模式运行,以最高权限运行
option.add_argument('-no-sandbox')
# 大量渲染时候写入/tmp而非/dev/shm
option.add_argument('-disable-dev-shm-usage')
# “headless”:不用打开图形界面,若注释则会打开浏览器
option.add_argument('-headless')
# 不加载图片, 提升速度
option.add_argument('-blink-settings=imagesEnabled=false')
# 谷歌文档提到需要加上这个属性来规避bug
option.add_argument('-disable-gpu')
if platform.system().lower() == 'windows':
    print("windows")
    browser = webdriver.Chrome(options=option)
elif platform.system().lower() == 'linux':
    print("linux")
    # 指定驱动路径
    browser = webdriver.Chrome("/usr/bin/chromedriver", options=option)
# 访问百度
browser.get('http://www.baidu.com/')
# 打印标题
print(browser.title)
# 关闭浏览器
browser.quit()

Linux下命令测试

1.给予执行权限

chmod +x puBaiduLinux.py

2.运行爬虫文件

python3 + 文件名

测试结果

python+selenium动态抓取网页数据第8张

 

免责声明:文章转载自《python+selenium动态抓取网页数据》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇第一篇web前端面试自我介绍(刚毕业的菜鸟)Centos 7中的网卡一致性命名规则下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Flask(Jinja2) 服务端模板注入漏洞vulhub

Flask(Jinja2) 服务端模板注入漏洞vulhub 前言 Flask简介 Flask 是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。 Flask 为你提供工具,库和技术来允许你构建一个 web 应用程序。这个 web 应用程序可以是一些 web 页面、博客、w...

浏览器自定义协议

查看协议和文件类型的默认应用 Win + I -> 应用 -> 默认应用,按协议指定默认应用。 可以看到有些程序自定义协议在里面,并且可以设置打开此协议的程序,但是并没有发现可以新增协议。只能通过注册表来解决。 自定义浏览器协议 chrome浏览器用到了自定义浏览器协议这一标准。自定义浏览器协议允许在浏览器中使用protocol://url 的...

Kalman Filter算法详解

关键词:卡尔曼滤波 线性最优估计 迭代 预测值 估计值 协方差矩阵 状态转移方程 观测方程 最小均方估计 预测+矫正    经典的卡尔曼滤波是一个迭代的线性的最优状态估计器。利用最小均方误差原理,可以保证状态值的估计是最优的。它只需要知道上次的状态估计值和当前的测量值,就可以预测到当前的最优估计值,适用于实际系统,共需5个方程既可以得到完成一次迭代。卡尔曼...

Jquery取值方法汇总

一、下拉框 1、jquery获取当前选中select的text值 var a = $("#ShareMoneyType").find("option:selected").text(); 2、jquery获取下拉框选中的Value值 var v = $("#ShareMoneyType").val(); 3、jquery获取当前选中select的索引值...

DGL学习(二): 使用DGL构造图

有许多方法可以构造DGLGraph。文档中建议使用的方法有四种,分别如下: ① 使用两个数组,分别存储源节点和目标节点对象 (数组类型可以是numpy 也可以是 tensor)。 ② scipy 中的稀疏矩阵(),表示要构造的图的邻接矩阵。 ③ networkx 的图对象(DGLGraph 和 networkx 可以互转)。 ④ 整数对形式的边列表。 下面...

buuctf-re (持续更新)

buuctf 1.easyre 查壳: 没有壳,且为64位程序 分析: 使用ida64分析该文件发现,只是简单的判断我们的输入相等则输出flag。 #flag{this_Is_a_EaSyRe} 2.reverse1 查壳: 无壳,64位程序 分析: 使用ida64分析 输入的Str1字符串与Str2字符串比较,若相等则为flag。而Str2在...