Python Selenium爬虫基础手册(一)

Hello!大家好,好久没有更新爬虫类的文章了,今天给大家带来一篇基础文章,介绍Selenium的一些基础操作,为我们以后爬虫做基础!

Selenium直接运行在浏览器中,就像真正的用户在操作一样。是一个用于Web应用程序测试的工具。但对于网络爬虫而言并不需要掌握那么细,只要掌握元素定位、输入和点击等,就足够了。今天给大家介绍的是Selenium的安装、八个元素定位语句。

第一部分:Selenium的安装

Selenium的安装的安装较为简单,只需要使用pip便可安装:

pip install selenium

安装完后,我们还需要下载一个浏览器驱动器,常用的有Chrome、Edge、Firefox、Safari四个,可根据自身习惯进行下载,这里我以Chrome为例。

首先查看自己谷歌浏览器的版本:
打开Chrome浏览器,在地址栏中输入网址:chrome://version/
在这里插入图片描述
然后在http://chromedriver.storage.googleapis.com/index.html中寻找相对应的版本

在这里插入图片描述
下载与自己系统相对应的chromedriver
在这里插入图片描述
最后,我们将解压至我们项目文件目录下即可
在这里插入图片描述
接下来我们就可以通过Selenium来启动Chrome驱动器,这里我用百度新闻进行测试:

from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://news.baidu.com/")

在这里插入图片描述

第二部分:八个元素定位语句

1、find_element_by_id()

当我们知道一个元素的id值,我们就可以通过这个语句进行定位,例如百度新闻左侧窗口新闻,它的id值为“pane-news”在这里插入图片描述

driver.find_element_by_id("pane-news")

在这里插入图片描述
如果没有这个元素,便会触发NoSuchElementException错误。在这里插入图片描述

2、find_element_by_name()

如果我们知道的是这个元素的name值,就可以用这个语句进行定位:
在这里插入图片描述

driver.find_element_by_name("word")

在这里插入图片描述

3、find_element_by_xpath()

XPath是用于在XML文档中定位节点的语言。因此Selenium用户可以利用这种强大的语言来定位Web应用程序中的元素。我们以这则新闻为例。在这里插入图片描述
使用XPath的主要原因是当我们不知道所查找的元素的id或name值时。我们可以使用XPath以绝对术语(不建议使用)进行定位:

driver.find_element_by_xpath("/html/body/div/div/div/div/div/div/ul[1]/li[1]/a")

在这里插入图片描述
但是这样写,绝对XPath的路径非常臃肿,它包含来自根(html)的所有元素的位置,因此,只要有一点点调整就可能导致失败。所以我们可以用“//”来省略前面的路径:

driver.find_element_by_xpath("//div/ul[1]/li[1]/a")

在这里插入图片描述
但是我们会发现,它定位到了符合这个路径规则的第一个元素,并没有匹配到我们想定位到位置。
可以通过查找具有id或name属性的附近元素(最好是父元素),可以根据关系找到目标元素。XPath还可用于通过id和name以外的属性指定元素。

driver.find_element_by_xpath("//div[@id='pane-news']/ul[1]/li[1]/a")

在这里插入图片描述

4、find_element_by_link_text()

如果我们所要定位的元素是一个链接文本,那么我们便可以使用这个语句进行定位。同样,我们以崔天凯的新闻为例:

driver.find_element_by_link_text("驻美大使崔天凯:保一国两制前途 还香港稳定发展")

在这里插入图片描述

5、find_element_by_partial_link_text()

当我们使用第四句语句进行定位的话,需要把文本打全,比较麻烦,那么我们就可以使用这句语句,只要输入部分内容就能定位:

driver.find_element_by_partial_link_text("驻美大使崔天凯")

在这里插入图片描述

6、find_element_by_tag_name()

当我们需要通过标签名称去查找元素时,就可以使用这句代码。使用这句语句,它将会返回符合给定标签的第一个元素。在这里插入图片描述

driver.find_element_by_tag_name("li")

在这里插入图片描述

7、find_element_by_class_name()

如果我们要按类属性名称查找元素时,就可以使用这句语句,将返回具有匹配类属性名称的第一个元素。在这里插入图片描述

driver.find_element_by_class_name("bold-item")

在这里插入图片描述

8、find_element_by_css_selector()

我们也可以通过CSS选择器语法查找元素,将返回具有匹配CSS选择器的第一个元素。
在这里插入图片描述

driver.find_element_by_css_selector ("li.bold-item")

在这里插入图片描述

查找多个元素

如果我们想要查找的是符合某一条件的所有元素,我们可以在以上八个语法中的element改成elements即可,这里以第六句语法为例,其它的可自行尝试:

driver.find_elements_by_tag_name("li")

在这里插入图片描述
这样就可以查找出符合条件的所有元素,并以列表形式返回。

总结

今天就把Selenium的安装以及八个元素定位语法介绍完了,在下一篇将介绍对元素的操作语法,例如本文中用到的text。如果本文对你有帮助,还请点个**“点赞”、“收藏”**支持下呗。

以下是我个人公众号,快快扫码关注支持下呗,最差也能得到我的个人微信,一起研讨学习吧~
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值