前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >web爬虫-用RoboBrowser登录和抓取数据

web爬虫-用RoboBrowser登录和抓取数据

作者头像
XXXX-user
修改2019-07-30 10:23:42
2.7K0
修改2019-07-30 10:23:42
举报
文章被收录于专栏:不仅仅是python

RoboBrowser是一个简单的Python库,用于在没有独立Web浏览器的情况下浏览Web。RoboBrowser可以获取页面,单击链接和按钮,然后填写并提交表单。如果您需要与没有API的Web服务进行交互,RoboBrowser可以提供很好的帮助。

接下来看一个例子,使用前需要pip install robobrowser安装这个库:

代码语言:javascript
复制
import re
from robobrowser import RoboBrowser
#创建RoboBrowser
br = RoboBrowser()
#打开datacoup登录地址
br.open("https://datacoup.com/signin")
#获取登录的表单
form = br.get_form()
#填写表单中的邮箱和密码
form['email'] = "FILL_USERNAME_IN"
form['password'] = "FILL_PASSWORD_IN"
#提交表单
br.submit_form(form)
#获取登录后的页面结果返回信息
src = str(br.parsed())
#匹配开始和结束的位置html
start = '<li class="header-bal">Earned: '
end = '</li>'
#使用正则进行匹配 返回结果
result = re.search('%s(.*)%s' % (start, end), src).group(1)

print(result)

第二个例子,访问一个音乐网站,模拟查询歌曲信息:

代码语言:javascript
复制
import re
from robobrowser import RoboBrowser
#浏览Rap Genius网站
browser = RoboBrowser(history=True)
browser.open('http://rapgenius.com/')
#获取表单
form = browser.get_form(action='/search')
print(form)                # <RoboForm q=>
#输入查询关键词queen 提交表单
form['q'].value = 'queen'
browser.submit_form(form)
#查询第一首歌曲
songs = browser.select('.song_name')
#访问歌曲连接地址
browser.follow_link(songs[0])
#查找样式lyrics的文本信息
lyrics = browser.select('.lyrics')
print(lyrics[0].text)      # \n[Intro]\nIs this the real life...

#返回查询结果页面
browser.back()
# 查询我最喜欢的歌曲
browser.follow_link('death on two legs')

# 也可以使用正则进行查找
lyrics = browser.find(class_=re.compile(r'\blyrics\b'))
lyrics.text

今天的RoboBrowser学习到这里,下节见!

关注公号

下面的是我的公众号二维码图片,欢迎关注。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 yale记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关注公号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档