前言:
如今兄弟们对“selenium爬虫提速”都比较讲究,兄弟们都需要剖析一些“selenium爬虫提速”的相关知识。那么小编在网摘上汇集了一些对于“selenium爬虫提速””的相关文章,希望兄弟们能喜欢,我们快快来学习一下吧!作为一个男人
在最高光的时刻
就是说出那句
之后
还不会被人打
...
虽然在现实生活中你无法这样
但是在这里
就让你体验一番
那种呼风唤雨的感觉
我们之前在爬取某些网站的时候
使用到了一些 python 的请求库
模拟浏览器的请求
我们需要抓包啥的
能不能不这样
可不可以就写几行代码
让它自己去打开浏览器
自己去请求我们要爬取的网站
自己去模拟我们的一些搜索
等等
反正就是
老子躺着,让它自己动
躺好
让 selenium 满足你的要求
怎么玩呢?
那么接下里就是
学习 python 的正确姿势
什么是 selenium ?
其实它就是一个自动化测试工具,支持各种主流的浏览器
直到遇到了 python
转身一变
selenium 变成了爬虫利器
我们先来安装一下
pip install selenium
接着我们还要下载浏览器驱动
小帅b用的是 Chrome 浏览器
所以下载的是 Chrome 驱动
当然你用别的浏览器也阔以
去相应的地方下载就行了
Chrome:
下载完之后
要配置一下环境变量
接着打开 pycharm
撸点代码
from selenium import webdriverdriver = webdriver.Chrome()driver.get(";)input = driver.find_element_by_css_selector('#kw')input.send_keys("苍老师照片")button = driver.find_element_by_css_selector('#su')button.click()
运行一下
可以看到
它自己打开了 Chrome 浏览器
访问了百度
搜索了苍老师的照片
这就是 selenium 的魅力
我们来看下我们刚刚写的代码
我们导入了 web 驱动模块
from selenium import webdriver
接着我们创建了一个 Chrome 驱动
driver = webdriver.Chrome()
有了实例之后
相当于我们有了 Chrome 浏览器了
接着使用 get 方法打开百度
driver.get(";)
打开百度之后
我们获取到输入框
至于怎么获取
等等会讲
获取到输入框之后我们就往里面写入我们要搜索的内容
input = driver.find_element_by_css_selector('#kw')input.send_keys("苍老师照片")
输入完了之后呢
我们就获取到搜索这个按钮
然后点击
button = driver.find_element_by_css_selector('#su')button.click()
就这样完成了一次自动的百度搜索
当我们使用驱动打开了一个页面
这时候其实没什么鸟用
因为我们要对那些元素进行操作
就像刚刚我们要获取输入框然后输入一些内容
还有获取按钮点击什么的
selenium 提供了挺多方法给我们获取的
当我们要在页面中获取一个元素的时候
可以使用这些方法
find_element_by_idfind_element_by_namefind_element_by_xpathfind_element_by_link_textfind_element_by_partial_link_textfind_element_by_tag_namefind_element_by_class_namefind_element_by_css_selector
想要在页面获取多个元素呢
就可以这样
find_elements_by_namefind_elements_by_xpathfind_elements_by_link_textfind_elements_by_partial_link_textfind_elements_by_tag_namefind_elements_by_class_namefind_elements_by_css_selector
比如我们打开了一个页面
是这样的 HTML
<html> <body> <form id="loginForm"> <input name="username" type="text" /> <input name="password" type="password" /> <input class="login" name="continue" type="submit" value="Login" /> </form> </body><html>
可以通过 id 获取 form 表单
login_form = driver.find_element_by_id('loginForm')
通过 name 获取相应的输入框
username = driver.find_element_by_name('username')password = driver.find_element_by_name('password')
通过 xpath 获取表单
login_form = driver.find_element_by_xpath("/html/body/form[1]")login_form = driver.find_element_by_xpath("//form[1]")login_form = driver.find_element_by_xpath("//form[@id='loginForm']")
通过标签获取相应的输入框
input1 = driver.find_element_by_tag_name('input')
通过 class 获取相应的元素
login = driver.find_element_by_class_name('login')
用 Chrome 浏览器的审核元素
可以很方便获取相应的属性
直接 copy 就完事了
如果你觉得
find_element_by_xxx_xxx
太长了
那么你还可以这样
driver.find_elements(By.ID, 'xxx')
By.属性和上面的是一样的
ID = "id"XPATH = "xpath"LINK_TEXT = "link text"PARTIAL_LINK_TEXT = "partial link text"NAME = "name"TAG_NAME = "tag name"CLASS_NAME = "class name"CSS_SELECTOR = "css selector"
当然
我们玩的是爬虫
要的就是源代码
我们已经知道
通过
driver = webdriver.Chrome()
可以拿到浏览器对象
那么要获取源代码还不简单么?
获取请求链接
driver.current_url
获取 cookies
driver.get_cookies()
获取源代码
driver.page_source
获取文本的值
input.text
ok
以上就是 selenium 的常用方法
想要了解更多相关 selenium 的可以到官方文档查看
下一次
小帅b将带你使用它来爬取网站
本篇完
再见
近期文章
python爬虫08 | 第二个爬虫,爬取豆瓣最受欢迎的250部电影慢慢看
python爬虫07 | 有了BeautifulSoup,妈妈不担心我的正则表达式
关注我呀!!!
学习 Python 没烦恼
坚持原创
给小帅b来个赞!!!
标签: #selenium爬虫提速