Python爬虫之用Selenium做爬虫
创始人
2024-05-29 10:00:49
0

我们在用python做爬虫的时候,除了直接用requests的架构,还有Scrapy、Selenium等方式可以使用,那么今天我们就来聊一聊使用Selenium如何实现爬虫。

Selenium是什么?

Selenium是一个浏览器自动化测试框架,是一款用于Web应用程序测试的工具。框架底层使用JavaScript模拟真实用户对浏览器进行操作。测试脚本执行时,浏览器自动按照脚本代码做出点击,输入,打开,验证等操作,就像真实用户所做的一样,从终端用户的角度测试应用程序。使浏览器兼容性测试自动化成为可能,尽管在不同的浏览器上依然有细微的差别。使用简单,可使用Java,Python等多种语言编写用例脚本。(百度百科)

如何使用Selenium?

首先下载Selenium这个库,pip install selenium。接着查看Selenium支持的浏览器,这里就使用都会有的chrome谷歌浏览器,如果想要查看能用什么浏览器可以使用下面这些代码,就可以看到支持的浏览器和版本:

from selenium import webdriver
help(webdriver)

在这里插入图片描述

然后再对应着浏览器的版本找相应的浏览器驱动。

驱动的位置一定要放在没有中文字符的文件夹中,好这个地址,有用。

使用Selenium主要是调用它的webdriver模块,具体操作如下:

from selenium import webdriver
path = '/Users/14163/Downloads/chromedriver_win32/chromedriver.exe'#这里是保存的驱动的位置
browser = webdriver.Chrome(executable_path=path)  #初始化驱动对象browser.get('http://www.baidu.com')        #获取url
print(browser.page_source)                #输出获取到的文件数据
browser.close()                          #关闭浏览器

结果:
在这里插入图片描述

再对比一下requests获取的网页的数据:
在这里插入图片描述

很明显selenium能获取得到的内容更多selenium有相应的函数去查找数据,单个元素的三种不同的方式去获取响应的元素,第一种是通过id的方式,第二个中是CSS选择器,第三种是xpath选择器,结果都是相同的。

这里是按id去查找,可以加text或者tag获取里面的内容。

在这里插入图片描述

或者可以调用另一个库去获取id,By

先 导入库:

from selenium.webdriver.common.by import By

在这里插入图片描述
这样就可以获取网页的数据。

这些只是获取一个元素的,可以获取多个元素加用find_elements即可。

交互操作:

对网页进行操作,比如在百度的搜索框输入孤独的s,然后点击搜索就可以这样:

按以下代码:

from selenium import webdriver
from selenium.webdriver.common.by import By
import time
path = '/Users/14163/Downloads/chromedriver_win32/chromedriver.exe'
browser = webdriver.Chrome(executable_path=path)
browser.get('http://www.baidu.com')
input_first = browser.find_element(By.ID,"kw")
print(input_first)
input_first.send_keys("孤独的s")
time.sleep(0.1)
button = browser.find_element_by_class_name('s_btn_wr')  #这里获取百度搜索的那个按钮
button.click()# 点击

结果:
在这里插入图片描述

在chrome中想要找到对应的按钮的元素或者id,可以点击红圈这个,然后再去移动去原网页,就可以知道结果:
在这里插入图片描述
不得不说,selenium真便利。

相关内容

热门资讯

关于一个童话 关于一个童话这个童话叫"田螺姑娘"那个公主?她不是公主~是个田螺精~但是后来他们一样过得很幸福田螺姑...
办理遗产买卖房产时产生欠条有法... 办理遗产买卖房产时产生欠条有法律效应吗?请详细描述,我们好准确回答.楼主所问的问题太简单,建议具体叙...
昆明好耍的地方 昆明好耍的地方1、大渔公园大渔公园位于昆明市呈贡县渔浦路怡和小区北,是集娱乐休闲、旅游度假为一体的好...
宋末词四大家 宋末词四大家只说名字周邦彦辛弃疾王沂孙吴文英张炎、王沂孙、蒋捷、周密宋词四大家是周邦彦、辛弃疾、王沂...
求:电影《布达佩斯之恋》里面钢... 求:电影《布达佩斯之恋》里面钢琴家安德拉许去餐馆应聘时弹的钢琴曲叫什么?不是那个黑色星期天!真是太好...
与张柏芝频传恋情,吴建豪和张柏... 与张柏芝频传恋情,吴建豪和张柏芝是否真的恋爱了?他们是真的没有恋爱,因为张柏芝还有谢霆锋的几个孩子,...
极品都市小说求推荐 百万字以上... 极品都市小说求推荐 百万字以上最好最强弃少,这个比较好看
什么是“状元、榜眼、探花”是何... 什么是“状元、榜眼、探花”是何典故?人文常识:古代科举考试中的第三名怎么称呼?状元、榜眼还是探花状元...
网上不是说冥王星在2010年被... 网上不是说冥王星在2010年被重新归为九大行星之列了吗?太阳系八大行星,不包括冥王星,如果冥王星算进...
韩版恶作剧之吻其他演员 韩版恶作剧之吻其他演员貌似确定了,是金贤重朴宝英男主是金贤重 女主的话 朴宝英可能性更大一些...
约会大作战第一季,第二季分别有... 约会大作战第一季,第二季分别有多少集第一季12急 两集ova 一集剧场版 第二季10集第一集十二集,...
关于母子间误会的故事 关于母子间误会的故事急求一个故事,关于母亲为孩子无悔付出,却在不经意间伤害了孩子,导致孩子误会了母亲...
一部电视剧是关于选美的几个女孩... 一部电视剧是关于选美的几个女孩子的,香港的,片子很老了,忘记叫什么名字了,诸位可否帮帮忙啊?香港小姐...
你听过最好的情话有哪些? 你听过最好的情话有哪些?鲜花给你,戒指给你,茱萸给你,柔情似水给你,热情如火给你,夏天的西瓜给你,秋...
倒影什么? 倒影什么?倒影是光照射在平静的水面上所成的等大虚像。成像原理遵循平面镜成像的原理。
益安宁丸的功效有什么? 益安宁丸的功效有什么?养心安神,健脾益肝,补血活血,还可以治疗肝肾不足,气血虚弱,所引起的腰漆酸软,...
求《声声慢》小石头和孩子们 求《声声慢》小石头和孩子们求《声声慢》小石头和孩子们声声慢,寻寻觅觅冷冷清清凄凄啴啴七七嗯这一个铲子...
我的同桌 不要抄袭。急。 我的同桌 不要抄袭。急。什么哦?作文还是?怎一个“慢”字了得  我有一个同桌,她是个文文静静的女孩子...
文风类似疯丢子的作者有哪些? 文风类似疯丢子的作者有哪些?文风类似疯丢子的作者有哪些?最好推荐他们的小说。《银河第一纪元》迷路的龙
紫薇适合在家里养吗 紫薇适合在家里养吗紫薇属于乔木,树形太大,养在院子里应该可以的,如果养在室内可能不适宜,很难养好。