selenium使用与总结
AJAX技术:
AJAX是一种与用户访问服务器资源相关的技术,在传统技术中用户网页的更新需要基于所有数据整界面地更新,这使得网络资源浪费和访问效率下降逐渐成为不可忽视的问题。
Ajax技术的出现在一定程度上解决了这个问题,该技术基于JavaScript和XML,常用json存储数据信息,使得网页信息资源可以实现局部更新,提高了访问效率。
获取Ajax数据的方式:
1.直接调用Ajax数据的接口,通过代码请求接口
2.selenium 模拟人为点击
使用selenium + chromedriver 获取动态数据
selenium 结合浏览器驱动 可以模仿人类在浏览器中的各种操作,只要在浏览器中能够获得的数据信息,都可以通过selenium技术获取得到,但是这种抓取页面的方式在数据量较大时,效率较低。
安装selenium:
pip install selenium
conda install selenium
安装浏览器驱动:
- Chrome:https://sites.google.com/a/chromium.org/chromedriver/downloads
- Firefox:https://github.com/mozilla/geckodriver/releases
- Edge:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
- Safari:https://webkit.org/blog/6900/webdriver-support-in-safari-10
在安装和使用chrome的时候要注意以下两个关键问题:
一是注意Chrome内核与Chromedriver的版本需要匹配对应
二是需要注意 chrome.exe 需要与 chromedriver.exe放在同一目录下
from selenium import webdriver #设置浏览器驱动的内核选择对象 option = webdriver.ChromeOptions() #浏览器驱动的内核选择 option.binary_location = r'E:\installation_After20211129\Google\Chrome\Application\chrome.exe' #实例化浏览器 chromeDriver = webdriver.Chrome(r"E:\installation_After20211129\Google\Chrome\Application\chromedriver.exe") chromeDriver.get("http://www.baidu.com") print(chromeDriver.page_source)
更多注意事项及用法可参考:selenium抓取动态网页数据 - enjoyzier - 博客园 (cnblogs.com)