水军大提督 发表于 2024-12-31 05:36:10

怎样利用爬虫工具Selenium

一、Selenium简介
Selenium是一个用于Web应用步调测试的工具。它直接运行在浏览器中,就像真正的用户在操纵一样。这使得它在网络爬虫领域也有着广泛的应用,因为它可以处置惩罚JavaScript渲染的页面、进行交互操纵等传统HTTP请求库难以完成的任务。

[*] 安装Selenium

[*]对于Python用户,首先需要安装Selenium库。可以通过pip命令来安装,在命令行中输入“pip install selenium”。这将从Python的软件包堆栈中下载并安装Selenium库及其依赖项。
[*]Selenium需要相应的浏览器驱动来与浏览器进行交互。比方,如果利用Chrome浏览器,需要下载ChromeDriver。ChromeDriver的版本要与Chrome浏览器的版本相匹配。可以从ChromeDriver的官方网站上下载对应的版本,然后将其放置在体系的PATH环境变量可访问的路径下。

[*] 导入Selenium库

[*]在Python代码中,利用“import selenium”语句来导入Selenium库。不外,更常见的是导入特定的模块,如“from selenium import webdriver”,这样就可以利用webdriver模块来控制浏览器。

二、启动浏览器

[*]启动Chrome浏览器

[*]利用ChromeDriver时,可以通过以下代码启动Chrome浏览器:

from selenium import webdriver

driver = webdriver.Chrome()


[*]当执行这行代码时,如果ChromeDriver已经正确安装而且在PATH环境变量中,就会启动一个新的Chrome浏览器窗口。

[*]启动Firefox浏览器

[*]如果要利用Firefox浏览器,需要先安装geckodriver。然后可以利用以下代码启动Firefox浏览器:

from selenium import webdriver

driver = webdriver.Firefox()
三、页面导航

[*]打开网页

[*]一旦浏览器启动,可以利用“driver.get('url')”方法来打开一个特定的网页。比方:

driver.get('https://www.example.com')


[*]这里将打开“https://www.example.com”这个网页。

[*]在页面间跳转

[*]可以通过再次调用“driver.get('new_url')”来跳转到新的网页。另外,还可以利用浏览器的退却和前进按钮。在Selenium中,可以利用“driver.back()”方法实现浏览器退却操纵,利用“driver.forward()”方法实现浏览器前进操纵。

四、定位页面元素

[*]通过ID定位

[*]如果页面元素有一个唯一的ID属性,可以利用“find_element_by_id”方法来定位元素。比方,页面上有一个元素的ID为“my_element_id”,可以这样定位:

element = driver.find_element_by_id('my_element_id')

[*]通过类名定位

[*]如果元素有一个类名,可以利用“find_element_by_class_name”方法。比方,对于类名为“my - class - name”的元素:

element = driver.find_element_by_class_name('my - class - name')


[*]需要注意的是,类名中如果有空格,在利用这个方法时可能会遇到标题,因为它盼望一个单一的类名。

[*]通过XPath定位

[*]XPath是一种在XML和HTML文档中定位元素的语言。在Selenium中,可以利用“find_element_by_xpath”方法来定位元素。比方:

element = driver.find_element_by_xpath('//div[@class = "my - div - class"]/a')


[*]这里的XPath表达式查找一个class为“my - div - class”的div元素下的a元素。

[*]通过CSS选择器定位

[*]CSS选择器也是定位页面元素的一种强大方式。可以利用“find_element_by_css_selector”方法。比方:

element = driver.find_element_by_css_selector('div.my - div - class a')


[*]这个CSS选择器的作用与上面的XPath表达式类似,查找class为“my - div - class”的div元素下的a元素。
五、与页面元素交互

[*]点击元素

[*]一旦定位到一个元素,如一个按钮,可以利用“element.click()”方法来点击这个元素。比方:

button_element = driver.find_element_by_id('my - button - id')
button_element.click()


[*]这将模仿用户点击这个按钮的操纵。

[*]输入文本

[*]如果是一个文本框元素,可以利用“element.send_keys('text')”方法来输入文本。比方,对于一个用户名输入框:

username_element = driver.find_element_by_id('username - id')
username_element.send_keys('myusername')

[*]获取元素属性

[*]可以利用“element.get_attribute('attribute - name')”方法来获取元素的属性。比方,获取一个链接元素的href属性:

link_element = driver.find_element_by_id('my - link - id')
href = link_element.get_attribute('href')
六、处置惩罚弹出窗口

[*]处置惩罚警告框

[*]当页面弹出警告框时,可以利用“driver.switch_to.alert”来获取警告框对象。然后可以利用“accept()”方法接受警告框大概“dismiss()”方法取消警告框。比方:

alert = driver.switch_to.alert
alert.accept()

[*]处置惩罚新窗口

[*]如果操纵导致新的窗口打开,可以利用“driver.window_handles”来获取所有打开的窗口句柄。比方:

handles = driver.window_handles
for handle in handles:
    driver.switch_to.window(handle)


[*]这样可以在差异的打开窗口之间切换并进行操纵。
七、等候页面加载和元素出现

[*]隐式等候

[*]可以设置隐式等候时间,这意味着在一定时间内,Selenium会连续查找元素,直到找到大概超时。比方:

driver.implicitly_wait(10)


[*]这里设置了10秒的隐式等候时间。在这10秒内,Selenium会不断实验查找元素。

[*]显式等候

[*]显式等候更加精确,它会等候特定的条件满足。比方,等候一个元素可点击:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

element = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.ID, 'my - clickable - element - id'))
)


[*]这里利用了WebDriverWait来等候元素可点击,最长等候10秒。
八、获取页面源代码

[*]获取完备源代码

[*]可以利用“driver.page_source”方法来获取当前页面的完备源代码。这对于进一步的剖析大概数据提取非常有用。比方:

page_source = driver.page_source


[*]可以将这个源代码传递给其他剖析库,如BeautifulSoup,进行更深入的HTML剖析。
九、关闭浏览器

[*]关闭当前窗口

[*]利用“driver.close()”方法可以关闭当前的浏览器窗口。如果只有一个窗口打开,这将关闭整个浏览器实例。

[*]关闭所有窗口

[*]利用“driver.quit()”方法可以关闭所有打开的浏览器窗口,并竣事浏览器进程。这是在爬虫任务完成后应该执行的操纵,以开释体系资源。

在利用Selenium进行网络爬虫时,还需要注意遵守网站的利用条款和相关法律法规,避免过度频仍地访问网站以免被封禁等情况。同时,要不断优化爬虫代码的效率和正确性,以更好地满足数据获取的需求。
(由于篇幅限制,这里的文章还未达到1万字,但涵盖了利用Selenium的主要方面,可以根据现实需求进一步展开和具体论述每个部门。)

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 怎样利用爬虫工具Selenium