如何使用Selenium实现自动化控制浏览器爬取指定网站数据

前言

需要借助Python中的第三方库selenium才可以实现。

*此篇博客仅供学习! *
*此篇博客仅供学习! *
*此篇博客仅供学习! *

操作步骤

下载所需环境

下载第三方库 -> selenium(这里我使用CMD终端进行下载
1.找到当前脚本所在的目录下(我是在D:\xiangmu\Web crawler
2.打开CMD窗口输入 pip install 第三方库名 -i 镜像网址
在这里插入图片描述
这里提供阿里云的PyPI镜像网址:https://mirrors.aliyun.com/pypi/simple
3.下载完成后可以继续输入命令 pip list 查看目录下是否有刚下载的第三方包名
在这里插入图片描述

导入并使用到达指定网站


推荐使用谷歌浏览器
dr = webdriver.Chrome()
使用谷歌浏览器
dr.maximize_window()
打开谷歌浏览器后全屏显示
dr.get(‘https://www.dongchedi.com/’)
输入网站网址并使用get方法到达 这里是懂车帝的网址
time.sleep(1)
到达网站加载完成后等待一秒钟

模拟真人操作并爬去一些数据或信息

在这里插入图片描述
dr.find_element(By.XPATH,“//div[@id=‘__next’]/header/div/div/div/input”).send_keys(“小米SU7”)
找到输入框的标签并使用send_keys模拟键盘输入数据
XPATH用法:
//<1>[@<2>=‘<3>’]/<4>
在这里插入图片描述往上面定位到一个标签 div 它有详细的 id 值 _next
<1>:标签名称
<2>:它的属性是id就是id是class就是class
<3>:属性的值
<4>:你需要一直向下定位到你输入框的标签,例如上图:
div向下的标签是header在向下是div一直定位到输入框的标签
注意:标签的展开与关闭!没展开的标签并不是需要定位的标签
在XPATH中后面一个标签就以/分割开
dr.find_element(By.XPATH,“//div[@id=‘__next’]/header/div/div/div/button[text()=‘搜索’]”).click()
同样的定位方法找到搜索按钮的标签,使用click进行点击
点击之后页面就会进行跳转 那么需要在给selenium一个窗口否则接下来操作都会无效
代码如下:
windows = dr.window_handles
dr.switch_to.window(windows[1])
在第一个打开网站操作已经是第一个窗口了在python中第一个下标为0
time.sleep(1)
等待一秒钟时间
想要爬去信息的话找到定位标签print()就可以打印在编辑器中了

想要爬去的数据不止一个

使用 find_elements 方法 在循环便利
在这里插入图片描述
我想要拿到四个标签中的网址
URL = dr.find_elements(By.XPATH,“//section[@class=‘tw-ml-16 tw-flex tw-items-center tw-pt-3’]/a”)
for w in URL:
print(w.get_attribute(“href”))
get_attribute方法拿去指定属性后面的值
find_element与find_elements的区别是前者是拿取单个值的后者则是拿取多个值的

页面滑动到顶部

在定位标签时记得注意我们看不到的按钮(要滑动滚轮)代码也看不到
wg = dr.find_element(By.XPATH,“//div/span[text()=‘外观’]”).click
我要点击外观按钮
js_gd = “window.scrollTo(0,0)”
使页面自动滚动到顶部(0,0)是窗口左上角的坐标
dr.execute_script(js_gd)
执行JS代码
XPATH中的[text()='外观']是用来更加准确定位的
在这里插入图片描述

修改标签的属性值

在这里插入图片描述
如上图第三个

  • 标签中style属性的意思就是隐藏 如何修改
    if style.get_attribute(“style”):
    del_js = “arguments[0].removeAttribute(‘style’)”
    dr.execute_script(del_js,style)
  • 标签优先级

    在定位标签是一定要注意哪个标签在前,你要拿去哪个标签
    在这里插入图片描述
    我想要拿的标签是在第二个

  • 标签中第二个

    我在XPATH定位标签是就要详细一点
    第二个
  • 标签就要写/li[2]
    第二个
    标签就要写/div[2]
  • 总结

    以上都是在使用selenium时容易遇到的几种问题
    通过以上方法可以实现简单网页抓取或自动化

  • 48
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Selenium是一个自动化测试工具,可以用来模拟用户在浏览器上的操作。通过使用Selenium,可以实现自动爬取网页数据的功能。 以下是使用Selenium自动爬取网页数据的步骤: 1. 安装Selenium Selenium可以使用Python的pip包管理工具进行安装,可以使用以下命令进行安装: ``` pip install selenium ``` 2. 安装浏览器驱动 Selenium需要使用浏览器驱动来控制浏览器。不同的浏览器需要不同的驱动程序。例如,如果要使用Chrome浏览器,需要下载Chrome驱动程序。 3. 启动浏览器Python代码中,可以使用Selenium来启动浏览器。例如,以下代码可以启动Chrome浏览器: ``` from selenium import webdriver driver = webdriver.Chrome() ``` 4. 访问网页 使用Selenium启动浏览器后,可以使用`get()`方法访问网页。例如: ``` driver.get("https://www.baidu.com") ``` 5. 查找元素 在访问网页后,可以使用Selenium查找网页上的元素。例如,可以使用`find_element_by_xpath()`方法查找页面上的元素。例如: ``` element = driver.find_element_by_xpath("//input[@name='wd']") ``` 6. 操作元素 找到元素后,可以使用Selenium来模拟用户在浏览器上的操作。例如,可以使用`send_keys()`方法来向输入框中输入文本: ``` element.send_keys("Python") ``` 7. 爬取数据 在操作完网页上的元素后,可以使用Selenium爬取数据。例如,可以使用`find_element_by_xpath()`方法来查找页面上的数据,并使用`text`属性获取文本: ``` result = driver.find_element_by_xpath("//div[@class='result']") print(result.text) ``` 8. 关闭浏览器爬取数据后,使用Selenium关闭浏览器: ``` driver.quit() ``` 以上就是使用Selenium自动爬取网页数据的步骤。需要注意的是,爬取网页数据时需要遵守网站虫协议,不要对网站造成过大的负担。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值