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 id="form" class="fm" action="/s" name="f">
form = browser.get_form(action="/s", )
# 搜索
# 这里填的是name
# form[name].value=
form['wd'].value = 'TTyb'
browser.submit_form(form)
print(browser.parsed)
browser.back()

python3_RoboBrowser_test的更多相关文章

随机推荐

  1. 第一个PHP程序

    <html> <head> <title><?php echo"这是第一个php程序"?></title> <st ...

  2. HTML的盒子模型

    每个HTML元素都可以看作一个装了东西的盒子,盒子具有宽度(width)和高度(height),盒子里面的内容到盒子的边框之间的距离即填充(padding),盒子本身有边框(border),而盒子边框 ...

  3. C# DataContract DataMember

    Windows Communication Foundation (WCF) uses a serialization engine called the Data Contract Serializ ...

  4. ubuntu下nginx服务器安装配置

    安装nginx sudo apt-get install nginx 文件目录: #配置文件 /etc/nginx/site-avaliable/default #日志文件 /var/log/ngin ...

  5. YII2.0中实现高级注册

    如何在不修改逻辑代码的情况下完美解决以上三个问题?看了下面的教程,一目了然! 以高级版2.0.6为例,打开/frontend/models/SignupForm.php class SignupFor ...

  6. vs中附加IIS进程的调试方法

    项目运行以管理员的身份进行运行否则附加不进去:

  7. Server.Transfer和Response.Redirect区别

    根本上,Response是叫浏览器去重新转向到指定的网页,而Server自然是发生在服务器端为主了,因此会有以下区别:1. Server.Transfer只能够转跳到本地虚拟目录指定的页面,而Resp ...

  8. APNS IOS PHP 苹果推送

    IOS---APNS 消息推送实践 首先,需要一个pem的证书,该证书需要与开发时签名用的一致. 具体生成pem证书方法如下: 1. 登录到 iPhone Developer Connection P ...

  9. Brute-force Algorithm_矩阵快速幂&&欧拉公式*****

    Problem Description Professor Brute is not good at algorithm design. Once he was asked to solve a pa ...

  10. LeetCode Search a 2D Matrix II (技巧)

    题意: 有一个矩阵,每行有序,每列也有序.判断一个数target是否存在于此矩阵中. 思路: 从右上角开始,如果当前数字<target,则该行作废.若当前数字>target,该列作废.这样 ...