python+selenium动态抓取网页数据
Windows+Python+Selenium
1.下载selenium
cmd pip3 instatll selenium
2.下载浏览器对应驱动版本
查看浏览器版本:chrome://version
驱动下载国外连接:http://chromedriver.storage.googleapis.com/index.html
驱动下载国内镜像连接(推荐):http://npm.taobao.org/mirrors/chromedriver/
把此驱动放在python安装目录,与phthon.exe同级
编写代码及代码测试
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()
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
Windows下驱动下载:
驱动下载国外连接:http://chromedriver.storage.googleapis.com/index.html
驱动下载国内镜像连接(推荐):http://npm.taobao.org/mirrors/chromedriver/
将下载好的Linux下chrome对应驱动上传至Linux服务器上
推荐放在/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 + 文件名
测试结果