python3_RoboBrowser_test
selenium库作为交互是非常方便的,但是却大大加长了加载的时间,例如需要渲染网址,加载js,造成在爬虫过程中时间变长。
因此找到一个虚拟的浏览器,同样具备selenium的部分功能,例如登陆,提交表单等,测试代码如下:
# !/usr/bin/python3.4
# -*- coding: utf-8 -*-
from robobrowser import RoboBrowser
import requests
# https://github.com/jmcarp/robobrowser
s = requests.Session()
# 这里可以携带cookie
header = {'User-Agent':
'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0',
'Referer':
'http://www.baidu.com',
'Host': 'www.baidu.com',
'Accept': 'text/plain, */*; q=0.01',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
'Connection': 'keep-alive'}
s.headers = header
browser = RoboBrowser(history=True, session=s)
browser.open('http://www.baidu.com')
# form = browser.get_form(action=re.compile(r'loginshop'))
#
form = browser.get_form(action="/s", )
# 搜索
# 这里填的是name
# form[name].value=
form['wd'].value = 'TTyb'
browser.submit_form(form)
print(browser.parsed)
browser.back()