简介: 简单来说,robobrowser是一个轻量级的浏览器,自动测试库,和selenium类似,但运行比selenium更为隐蔽,因为它不会打开浏览器页面。如果之前的爬虫中你有使用过requests和bs4,那robobrowser绝对会让你爱不释手。
安装: pip install robobrowser
'''
@description:使用robobrowser模拟登陆GitHub
'''
from robobrowser import RoboBrowser
login_url = 'https://github.com/login'
'''生成robobrwser对象, lxml解析器需提前安装 pip install lxml'''
rob = RoboBrowser(history=True,parser='lxml')
rob.open(login_url) #打开登陆页面
login_form = rob.get_form(action="/session") #获取登陆表单,先通过审查元素找到表单的action参数
login_form['login'].value = 'your username' #填写用户名
login_form['password'].value = 'your password' #填写密码
rob.submit_form(login_form) #提交表单
'''通过获取首页github图标a标签链接判断登陆是否成功'''
try:
href = rob.find('a',class_='Header-link').get('href')
if href:
print('登陆成功,href=%s'%href)
except Exception as e:
print('登陆失败,原因:%s'%e)
数据抓取
因为robobrowser依赖于bs4,所以其数据抓取方法和bs4基本相同,主要有三种方法。
这部分就不做演示了,可以去看下bs4的用法——> bs4使用大全
注:robobrowser的两大功能应为表单提交 和数据抓取,模拟登陆是表单提交中的典型例子。