前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >selenium入门

selenium入门

作者头像
y191024
发布2022-09-20 19:17:26
5650
发布2022-09-20 19:17:26
举报
文章被收录于专栏:睡不着所以学编程

最近课有点多,在宿舍呆的时间好少,加上我现在还要做运动,学习的时间更少了,导致我的学习进度好慢好慢...最近在学习selenium了,在学习的过程中电脑出各种问题,比如导入的模块用不了了...又浪费了我很多时间。

selenium模块和爬虫之间有什么关联:

代码语言:javascript
复制
    1.便捷的获取网站中动态加载的数据
    2.便捷实现模拟登录
什么是selenium:
    基于浏览器自动化的一个模块
环境安装
     pip install selenium
     下载浏览器的驱动程序
     实例化一个浏览器对象
     编写基于浏览器自动化的操作代码
代码语言:javascript
复制

简而言之就是可以自动操作浏览器的模块,比如让他自动抢票,自动点击某些东西...

这次的案例是模拟爬取化妆品审查网站中的企业名称,由于页面是动态加载出来的,所以我们获取不到页面中的企业名称,但是可以用selenium模块来爬取。

首先要先安装环境:

代码语言:javascript
复制
from selenium import webdriver  #是这个 
from lxml import etree  # 其他要用的
from time import sleep

随后要实例化一个浏览器对象,但是在实例化之前,需要下载一个浏览器的驱动,要根据浏览器的版本下载,然后放进pycharm项目里。

代码语言:javascript
复制
# 实例化一个浏览器对象
bro = webdriver.Chrome(executable_path="./chromedriver")

我们可以让浏览器自动发起请求(get()方法),去访问我们指定的页面,然后还可以获取页面源码(page_source方法)

代码语言:javascript
复制
# 让浏览器对指定url发起请求
bro.get("http://scxk.nmpa.gov.cn:81/xk/")
# page_source获取浏览器当前页面的页面源码
page_text = bro.page_source
tree = etree.HTML(page_text)

然后用etree模块,定位标签

代码语言:javascript
复制
for li in li_list:
    name = li.xpath("./dl/@title")[0]
    print(name)  # 尝试打出来
    sleep(5) # 让浏览器休眠5秒
bro.quit()  # 5秒后将自动关闭

现在运行来看下效果:

爬取成功了,这样我们就实现了一个简单的爬取

这次做的案例是让浏览器自动打开百度首页,在搜索栏中输入“iphone”,然后点击搜索,滑动到页面最底下,再跳转到第二页。我跟着视频学习时老师用的是淘宝,但是我的行不通,所以我就换成了百度,下面展示一下代码以及动图:

代码语言:javascript
复制
from selenium import webdriver
from time import sleep

bro = webdriver.Chrome(executable_path="./chromedriver")
bro.get("https://www.baidu.com/")
# 定位搜索框
search = bro.find_element_by_id("kw")
# 给搜索栏发送一个值(搜索的商品关键字)
search.send_keys("iphone")
# 点击搜索按钮
btn = bro.find_element_by_id("su")
btn.click()
# 稍微等待一下,否则无法滑动滚动条
sleep(1)
# 执行一组js代码
# 在搜索完滑动滚轮,向下翻一屏幕的页
bro.execute_script("window.scrollTo(0,document.body.scrollHeight)")
# 翻到第二页
turn = bro.find_element_by_xpath("//*[@id='page']/div/a[1]/span[2]")
turn.click()
sleep(5)
bro.quit()

效果图:

操作非常的快,中间也遇到了很多问题...害,我还重新安装了浏览器什么的,还有在淘宝操作的时候一直定位不到点击的元素,心情一度还挺崩溃的,好在今天还运动了,感觉分泌了多巴胺,使我的心情好多了。这两天没学HTML,因为实在没啥时间,今天中午还被学姐叫去排版公众号,又占用了我一个多小时...

话说我实在太喜欢这个模块了,我一定要好好学这个,但是他还涉及到一些前端的JS的知识,所以我要抓紧学前端了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 睡不着所以学编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档