Python/35-32/(github项目地址(系列文章)
优采云 发布时间: 2021-02-21 12:03Python/35-32/(github项目地址(系列文章)
硒简介
Selenium是用于Web应用程序测试的工具。硒测试直接在浏览器中运行,就像实际用户正在操作一样。该工具的主要功能包括:测试与浏览器的兼容性-测试您的应用程序,以查看它是否可以在不同的浏览器和操作系统上正常运行。测试系统功能-创建回归测试以验证软件功能和用户需求。支持自动记录动作并自动生成.NET,Java,Perl等不同语言的测试脚本。
github地址:
为什么在履带领域使用硒?
编写采集器的一般方法是使用python脚本直接访问目标网站,并且仅访问目标数据采集,访问速度非常快,因此目标网站可以轻松访问将您识别为机器人,然后阻止您~~并使用硒编写爬虫程序,python脚本控制浏览器访问,也就是说,python脚本和目标网站之间存在额外的浏览器操作,这种行为更像是人类的行为。这样,许多困难的网站也可以轻松捕获。
使用硒前的准备工作硒的基本知识
from selenium import webdriver
from bs4 import BeautifulSoup
初始化浏览器
driver = webdriver.Firefox()
打开某个网址
driver.get(url)
#这里是根据xpath输入账号和密码的
driver.find_element_by_xpath(xpath).clear()
driver.find_element_by_xpath(xpath).send_keys("你的账号")
driver.find_element_by_xpath(xpath).clear()
driver.find_element_by_xpath(xpath).send_keys("你的密码")
#定位“点击登录”框的位置的xpath,通过click()执行登录
driver.find_element_by_xpath(xpath).click()
#获取该网页的源码
driver.get(url)
html = driver.page_source
bs4 = BeautifulSoup(html,'lxml')
使用硒
## 引入WebDriver的包
from selenium import webdriver
## 创建浏览器对象
browser = webdriver.Firefox()
## 打开百度网站
browser.get('https://www.baidu.com/')
效果:自动打开浏览器,然后打开百度首页
from selenium import webdriver
## 创建浏览器对象
browser = webdriver.Firefox()
## 打开小米社区网站
browser.get('https://passport.csdn.net/account/login')
browser.find_element_by_xpath("//*[@id='username']").clear()#清空输入框
browser.find_element_by_xpath("//*[@id='username']").send_keys("你的账号")#输入账号
browser.find_element_by_xpath("//*[@id='password']").clear()#清空输入框
browser.find_element_by_xpath("//*[@id='password']").send_keys("你的密码")#输入密码
browser.find_element_by_xpath("/html/body/div[4]/div/div/div[2]/div/div[1]/div/form/input[8]").click()#登录
效果:自动打开浏览器,然后打开csdn登录首页,自动输入用户名和密码实现登录。
## 引入WebDriver的包
from selenium import webdriver
from bs4 import BeautifulSoup
## 创建浏览器对象
browser = webdriver.Firefox()
## 打开小米社区网站
browser.get('https://account.xiaomi.com/pass/serviceLogin?callback=http%3A%2F%2Fbbs.xiaomi.cn%2Flogin%2Fcallback%3Ffollowup%3Dhttp%253A%252F%252Fbbs.xiaomi.cn%252F%26sign%3DM2E4MTg3MzE3MGJmZGFiMTc0MTE5NmNjZTAyYWNmMDZhNTEwOTU2NQ%2C%2C&sid=new_bbs_xiaomi_cn&_locale=zh_CN')
browser.find_element_by_xpath("//*[@id='username']").clear()#清空输入框
browser.find_element_by_xpath("//*[@id='username']").send_keys("你的账号")#输入账号
browser.find_element_by_xpath("//*[@id='pwd']").clear()#清空输入框
browser.find_element_by_xpath("//*[@id='pwd']").send_keys("你的密码")#输入密码
browser.find_element_by_xpath("//*[@id='login-button']").click()#登录
base_url="http://bbs.xiaomi.cn/d-{page}"
#我这里是抓取了前5页,当然你可以抓取的更多
for i in range(1,6):
url=base_url.format(page=i)
browser.get(url)
bs4=BeautifulSoup(browser.page_source,'lxml')
titles=bs4.find_all('div', {'class':'title'})
for title in titles:
title_content=title.get_text().strip('\n')
print(title_content)
效果:
如何获得遇到某些问题的xpath?
这是最简单的方法:
打开firefox浏览器,进入相应的页面,右键单击一个网页元素,单击以查看该元素,然后复制xpath。如下图所示:
WebDriverException:“ geckodriver”可执行文件必须位于PATH中。
上面也提到了这一点。
Geckodrive下载链接:
将下载的geckodriver.exe放入路径路径D:/ Python / Python35-32 /(即,将其放入您的python安装路径中,我假设您已经安装了python并且Python安装路径已添加到路径环境变量)
GitHub项目地址(系列文章包括常用的第三方库的使用和检索,并将不断更新)