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真便利。

相关内容

热门资讯

怎么哄女孩 怎么哄女孩要哄女孩子开心,那就要记得她的生日,以及各种情人节,例如在元宵,七夕的时候有所表示。不用太...
关于360杀毒的误报问题 关于360杀毒的误报问题为什么我自己用FREE PASCAL 编写的程序会报成病毒?以下是源代码:v...
谁来猜个谜语吖...呜~~ 谁来猜个谜语吖...呜~~1、千头万尾一条虫(打一历史人物)2、山下有条虫,像龙不是龙(打一传说中人...
遥不可及的及是什么意思 遥不可及的及是什么意思A比得上。B赶上。C推及;顾及。D达到选 D遥不可及,是什么意思?指很远很远....
完美世界国际版的小嘟嘟熊在哪? 完美世界国际版的小嘟嘟熊在哪?如果玩国际版本基本建议你不用去抓了你抓他用的时间换成钱还不如去5173...
表示机会几乎没有用一个成语怎么... 表示机会几乎没有用一个成语怎么说啊?于事无补、镜中花、水中月,形同虚设、竹篮打水一场空,答:功亏一篑...
小丽逛菜场|看个苏超你们把西瓜... 转自:扬子晚报扬子晚报网7月5日讯(记者 刘丽媛)西瓜味冷饮热卖、西瓜涨价、西瓜售罄……近两天,西瓜...
霍尼韦尔中国总裁余锋:专注中国... 中经记者 李哲 上海报道“中国始终是我们全球最重要的市场之一。”近日,霍尼韦尔中国总裁余锋在接受《中...
湖南郴州资兴市东江湖白廊景区一... 7月5日16时30分许,湖南郴州资兴市东江湖白廊景区一游船突遇11级大风造成侧翻,致船上29人落水。...
前台开错房女房客误入男子房间,... 都市现场综合齐鲁晚报“现在想想都后怕!”7月3日,云南的刘先生向齐鲁晚报·齐鲁壹点反映他与女友在昆明...