怎么用python +硒进行爬虫操作

介绍

这篇文章主要讲解了“怎么用python +硒进行爬虫操作”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习”怎么用python +硒进行爬虫操作”吧!

1。声明浏览器对象

硒支持多个浏览器,也支持手机端的浏览器,除此之外还有Phantomjs、下面举一个简单的例子,创建一个谷歌浏览器对象,依次类推可以得到其他浏览器对象

从硒进口webdriver

 chrome_driver =,“C: \ chromedriver \ \ zhongchengbin \ \用户文档chromedriver.exe"(注意要下载对应的chrome的版本,设置路径)browser =, webdriver.Chrome (executable_path=chrome_driver) 


2。请求页面

#使用得到方法请求百度网页
browser.get (& # 39; https://www.baidu.com& # 39;)
# page_source属性用于获取网页的源代码,然后就可以使用正则表达式,css, xpath, bs4来解析网页
打印(browser.page_source)
browser.close ()
3。查找单个节点和多个节点

寻找单个节点的多有方法,返回的结果是WebElement类型的
browser.find_element_by_id()
browser.find_element_by_name()
browser.find_element_by_xpath()
browser.find_element_by_tag_name()
browser.find_element_by_link_text()
browser.find_element_by_class_name()
browser.find_element_by_css_selector()
browser.find_element_by_partial_link_text()
如果是找多个节点,在element后面加s,结果是列表类型


当我们要定位到百度的搜索框时,我们可以看到,检查元素中,input这个节点里有class,id 等等属性,我们通过定位相关属性,就能定位到想要的节点

from selenium import webdriver
chrome_driver="C:\Users\zhongchengbin\Documents\chromedriver\chromedriver.exe"(注意要下载对应的chrome的版本,设置路径)

browser=webdriver.Chrome(executable_path=chrome_driver)
browser.get('https://www.baidu.com')
input=browser.find_element_by_id('kw')
browser.close()
4模拟浏览器进行操作

在打开浏览器之后,我们往往需要在一些搜索框里输入文字,删除文字,点击一些按钮等等,这时我们需要用到一下几种方法

send_keys():输入文字
clear():清除文字
click():点击按钮
举个例子,我们打开百度浏览器,然后输入一些关键字,删除,再次输入一些关键字,然后点击回车然后搜索

import time
from selenium import webdriver
chrome_driver="C:\Users\zhongchengbin\Documents\chromedriver\chromedriver.exe"(注意要下载对应的chrome的版本,设置路径)

browser=webdriver.Chrome(executable_path=chrome_driver)
browser.get('https://www.baidu.com')
input=browser.find_element_by_id('kw')
input.send_keys('许嵩')
time.sleep(3)
input.clear()
input.send_keys('python')
input.send_keys(Keys.ENTER)
# button=browser.find_element_by_class_name('btn self_btn')
# button.click()
browser.close()
5.模拟鼠标移动,键盘按键等没有特定的执行对象的操作

模拟浏览器的时候,我们可能会使用到一些拖动的操作,比如需要将某一个点拖到另外一个地方去,这种方法我们可以称之为动作链。

首先打开网页http://www.runoob.com/try/try.php?文件名=jqueryui-api-droppable中的一个实例,选中要拖动的节点以及拖动到哪里的节点,使用ActionChains对象使它变成一个变量,再调用drag_and_drop方法以及执行方法来执行该过程。

从硒硒进口webdriver
。webdriver进口ActionChains
浏览器=webdriver.Chrome ()
browser.get (& # 39; http:www.runoob.com/try/try.php?filename=jqueryui-api-droppable& # 39;)
browser.switch_to.frame (& # 39; iframeResult& # 39;)
yuanlai=browser.find_element_by_css_selector(& # 39; #可拖动的# 39;)
mubiao=browser.find_element_by_css_selector(& # 39; #可以滴落的# 39;)
a=ActionChains(浏览器)
a.drag_and_drop (yuanlai mubiao)
a.perform ()
6。拖动滑动条

使用爬虫爬取网页时,经常会看到使用滑动条的页面,然后会显示加载中,没多久就会加载出新的页面出来。如果直接爬取,往往只能爬到一页甚至是前几页的信息。

在此可以直接模拟运行JavaScript,滑到网页的最底下。使用的是execute_script(),并且可以设置一个网页提示框

从硒进口webdriver
浏览器=webdriver.Chrome ()
browser.get (& # 39; https://www.toutiao.com/search/?keyword=街拍& # 39;)
# execute_script()将进度条拉到最下面,然后弹出提示框
browser.execute_script (& # 39; window.scrollTo (0, document.body.scrollHeight) & # 39;)
browser.execute_script(& # 39;警报(“已经到最下面了“)& # 39;)

怎么用python +硒进行爬虫操作