目录
- 简介
- 常用方法
-
- 案例:获取拉勾网的招聘信息
简介 selnium是一个自动化测试工具,支持各种浏览器,简单的说就是selenium可以操作浏览器,加载一些需要动态加载的界面
安装selenium库后还需要安装对应浏览器的驱动
selenium webdriver的基本操作
定位到元素后,还需要进行以下相应的操作,下面介绍一些常用的方法
常用方法
方法 | 描述 | 示例 |
---|---|---|
get(url) | 访问url | driver.get('http://www.baidu.com') |
back() | 后退上一步 | driver.back() 后退上一个网页,类似于:← |
forward() | 前进下一步 | driver.format() 与back()相反,类似于:→ |
quit() | 退出驱动关闭所有窗口 | driver.quit() 关闭所有窗口 |
close() | 关闭当前窗口 | driver.close() 关闭当前打开的窗口 |
maximize_window() | 浏览器最大化 | |
refresh() | 刷新浏览器 | driver.refresh() 刷新浏览器 |
方法 | 描述 | 示例 |
---|---|---|
send_keys() | 向文本框类型中输入数据 | driver.find_element('input').send_keys('123') 向input输入框中输入123 |
clear() | 清空输入的数据 | driver.find_element(‘tag’,'input').clear() 清空input框中的内容 |
click() | 单击事件 | driver.find_element('tag','input').click() |
enter() | 触发键盘的enter操作 | driver.find_element('tag','input').enter() |
text() | 获取元素的文本内容 | driver.find_element('id','name').text() ,返回name的文本 |
page_source | 获取页面的HTML内容 | driver.page_source() 获取网页的html |
方法 | 简介 | 示例 |
---|---|---|
get_cookies() | 获取当前页面的所有cookies | dirver.get_cookies() 获得页面所有的cookie |
add_cookie() | 添加cookie | driver.add_cookie('time','1612354154.7383971') ,添加一个time为1612354154.7383971的cookie |
delete_cookie() | 删除一条cookie | driver.delete_cookie('time') 删除名称为time的cookie |
delete_all_cookies() | 删除所有cookie | driver.delete_cookies() 删除所有cookie |
from selenium import webdriver
import time
from bs4 import BeautifulSoup
import re
class Job:# 建立一个工作类
def __init__(self):
self.name=None
self.company=None
self.condition=None
self.salary=None
def get(self):
return (self.name,self.company,self.condition,self.salary)
class Lagou:
def __init__(self):
self.driver=webdriver.Chrome()
self.driver.maximize_window()
self.url='http://www.lagou.com/'
def search(self,keyword):
self.driver.get(self.url)
time.sleep(3)
self.driver.find_element('id','cboxClose').click()
time.sleep(3)
self.driver.find_element('id','search_input').send_keys(keyword)
self.driver.find_element('id','search_button').click()
time.sleep(2)
page_source=self.driver.page_source
self.driver.quit()
return page_source
def get_jobs(self,page_source):
soup=BeautifulSoup(page_source,'html.parser')
myjob=Job()# 实例化每一个工作并进行信息存储
hot_item=soup.find_all('li',class_=re.compile('con_list_item'))
for item in hot_item:
myjob.name=item.find('h3').get_text().strip() # 去除字符两端的空白字符
myjob.company=item.select_one('.company_name>a').get_text().strip()
myjob.salary=item.select_one('.money').get_text().strip()
myjob.condition=item.find('div',class_='industry').get_text().strip()
print(myjob.get())
if __name__ == '__main__':
hot=Lagou()
time.sleep(5)
page_source=hot.search('python')
hot.get_jobs(page_source)
【python功能库|python第三方库--selenium库】运行结果
文章图片
推荐阅读
- python机器学习|从零到一实现神经网络(python)(一)
- 关于python的一些tip|关于selenium配置Chrome驱动(Windows系统)
- 关于python的一些tip|关于使用selenium定位网页元素时系统警告定位方法弃用的问题
- 关于python的一些tip|关于ASCII码的转换
- Python如何处理异常和错误()
- Python Tkinter中的消息小部件如何使用()
- 如何实现用Python打开文件(详细代码)
- 人工智能|【送书 10 本】阿里巴巴副总裁贾扬清推荐,国内第一本数据竞赛相关图书,今天正式预售啦...
- python基础|torchvision.datasets.ImageFolder使用详解