SheepChef Blog
何時までも夢へ求めてる
SheepChef Blog

Selenium - 强大的Web工具

站长这几天在研究网络爬虫,偶然看见了一个工具,名为“Selenium”。可以模拟浏览器的所有真实操作,比普通GET和POST请求强大不少,可以模拟页面按钮点击事件等一系列操作。

Selenuim提供了多种浏览器内核的支持,不过需要另外安装。最常用的是chromedriver,也有用IE11或者Firefox内核的。

对于编写爬虫,最常用的语言是python,但爬虫软件经常会被各个网站的反爬虫机制限制,获取到错误的或者空的结果。Selenium可以杜绝浏览器环境层面的反爬虫,可以真实地执行页面的js,骗过所有前端的反爬虫机制。

原生Python并不携带Selenium支持库,需要另外安装。对于Linux系统,可以执行如下shell指令来安装Selenium的支持:

pip install Selenium

Selenium调用浏览器必须有一个浏览器内核驱动文件:

Chrome驱动文件下载:chromedriver

下载完驱动文件后,对于Linux系统,需要把驱动二进制文件移动到/usr/bin 文件夹下,需要root管理员权限。这里就不再赘述如何移动文件了。

这一切准备工作干完后,我们开始写代码。这里给各位一个参考教程,对新手入门很有帮助: Selenium入门

这里直接给例程:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
#配置浏览器访问参数
chrome_opt = Options()  # 创建参数设置对象.
chrome_opt.add_argument('--headless')  # 无界面化.
chrome_opt.add_argument('--disable-gpu')  # 配合上面的无界面化.
chrome_opt.add_argument('--window-size=1366,768')  # 设置窗口大小, 窗口大小会有影响.
chrome_opt.add_argument("--no-sandbox") #使用沙盒模式运行
# 创建Chrome对象并传入设置信息.
browser = webdriver.Chrome(chrome_options=chrome_opt)
url = "https://www.baidu.com/"
browser.get(url)#发送请求
print(browser.page_source)#打印页面源代码
'''
Selenium提供了8种定位方式。
id
name
class name
tag name
link text
partial link text
xpath
css selector
这8种定位方式在Python selenium中所对应的方法为:
find_element_by_id()
find_element_by_name()
find_element_by_class_name()
find_element_by_tag_name()
find_element_by_link_text()
find_element_by_partial_link_text()
find_element_by_xpath()
find_element_by_css_selector()
定位方式和一般dom定位方式没什么不同,也就是getElementbyId,getElementsbyClassName这类。
'''
browser.quit()#终止Selenium

在本文的最后,总结一下:Selenium是一个有强大功能的Web自动化工具,不过其缺点是相对资源占用较大,一般来说没什么问题,但内存比较吃紧的服务器需要慎重考虑。在最后附上Selenium项目的官网:Selenium

5 2 投票数
文章评分
感谢您一直阅读到本文的最后!
如果您觉得本文写得不错,欢迎您转发支持我们。
# # # #
首页      IT技术      Selenium - 强大的Web工具
Avatar photo

SheepChef

文章作者

Webmaster

订阅评论
提醒
guest
0 评论
内联反馈
查看所有评论

SheepChef Blog

Selenium - 强大的Web工具
站长这几天在研究网络爬虫,偶然看见了一个工具,名为“Selenium”。可以模拟浏览器的所有真实操作,比普通GET和POST请求强大不少,可以模拟页面按钮点击事件等一系列操作。 Sel…
扫描二维码继续阅读
2021-02-08