还没被玩坏的robobrowser(7)——表单操作
背景
有一些站点是需要登录之后才能抓取内容的,另外做web测试的时候登录是家常便饭。
这一节里我们就以登陆testerhome为例,讲解一下robobrowser中form的操作。
预备知识
get_form
方法用来抓取form;submit_form
方法用来提交表单;form[name].value=
方法用来给文本框赋值,也就是说往文本框里写内容;
代码
#coding: utf-8
import re
from robobrowser import RoboBrowser
url = 'http://testerhome.com/account/sign_in/'
b = RoboBrowser(history=True)
b.open(url)
# 获取登陆表单
login_form = b.get_form(action='/account/sign_in')
print login_form
# 输入用户名和密码
login_form['user[login]'].value = 'your account'
login_form['user[password]'].value = 'your password'
# 提交表单
b.submit_form(login_form)
# 打印登陆成功的信息
print b.select('.alert.alert-success')[0].text
文本版权归乙醇所有,欢迎转载,但请标明出处。
下一节: 完结篇:阅读robobrowser的源码
还没被玩坏的robobrowser(7)——表单操作的更多相关文章
- 还没被玩坏的robobrowser(1)-简介
今天偶然发现了一个很有意思的python库——robobrowser.简单的看了一下,觉得这个东东作为轻量的爬虫还是很适合的.另外这个做一些简单的web测试也未尝不可. 好了,那么问题来了. 什么是r ...
- 还没被玩坏的robobrowser(6)——follow_link
背景 在做spider的时候,我们经常会有点击链接的需求. 考虑这样的一个简单spider:获取qq.com主页上的今日话题中的内容. 一般思路是先去qq.com首页上找到今日话题的链接,然后点击这个 ...
- 还没被玩坏的robobrowser(8)——robobrowser的实现原理
背景 学习使用工具实际上不难,不过我们应该通过阅读工具源码来提升自己的水平. 多读代码,读好代码.很不错,robobrowser的代码简单易懂,值得学习. 预备知识 源码地址 一起其实是从browse ...
- 还没被玩坏的robobrowser(5)——Beautiful Soup的过滤器
背景 本节的知识还是属于Beautiful Soup的内容. Beautiful Soup的find和find_all方法非常强大,他们支持下面一些类型的过滤器. 字符串 最简单的过滤器是字符串.在搜 ...
- 还没被玩坏的robobrowser(4)——从页面上抓取感兴趣的内容
背景 本节的知识实际上是属于Beautiful Soup的内容. robobrowser支持Beautiful Soup,一般来说通过下面3个方法获取页面上感兴趣的内容 find find_all s ...
- 还没被玩坏的robobrowser(3)——简单的spider
背景 做一个简单的spider用来获取python selenium实战教程的一些基本信息.因为python selenium每年滚动开课,所以做这样一个爬虫随时更新最新的开课信息是很有必要的. 预备 ...
- 还没被玩坏的robobrowser(2)——安装及快速开始
安装robobrowser 注意:这里假设你知道如何使用pip安装python的库的知识,如果你不了解这一块的话,点这里获取帮助. 强烈推荐使用pip安装. pip install robobrows ...
- C-Lodop提示“网页还没下载完毕,请稍等一下再操作.”
该提示在Lodop旧版本中是: 提示"WebSocket没准备好,点确定继续",提示“C-Lodop没准备好”,新版本修改了该提示的描述“网页还没下载完毕,请稍等一下再操作.”,让 ...
- 玩转html5(三)---智能表单(form),使排版更加方便
<!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/h ...
随机推荐
- WIN10系统右击开始菜单没有属性选项怎么办
修复方法一:1.按下"WIN+R"输入:regedit回车,进入注册表编辑器:2.在注册表左侧依次打开:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ ...
- android中使用spinner组件
spinner组件类似于html中的select标签,实现下拉选择框的功能. 添加一个Activity,界面上添加一个spinner下拉框,一个button按钮.点击按钮,获取spinner下拉框当前 ...
- iOS9中找不到XXX.dylib 与 is unavailable no availabel on ios (app extension) - use view controller 的解决办法
在 iOS9 中现在找不到 XXX.dylib 了,比如libz.tbd 如果要用到 libz.dylib,可以用下面的办法,来自 Stack Overflow. Go to Build Phase ...
- ZH奶酪:PHP (爬虫)下载图片
原文地址:http://www.phpfensi.com/php/20140107/1128.html 通过图片地地址把图片保存到本址,这里我们直接通过readfile读取然后通过fopen保存即可, ...
- Velocity使用总结
一.载入Velocity依赖包 <dependency> <groupId>org.apache.velocity</groupId> <artifactId ...
- 使用JAVA的URL类处理url事例
import java.net.*; import java.io.*; public class ParseURL { public static void main(String[] args) ...
- Spring Boot 之 RESTfull API简单项目的快速搭建(一)
1.创建项目 2.创建 controller IndexController.java package com.roncoo.example.controller; import java.util. ...
- 单页面SPA应用路由原理 history hash
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...
- CUPS/Printer sharing
https://wiki.archlinux.org/index.php/CUPS/Printer_sharing_(简体中文) GNU/Linux系统间共享 在作为打印服务器的GNU/Linux ...
- Java DES 加解密("DES/EBC/NoPadding")
private static final Cipher DES_CIPHER; static { try { DES_CIPHER = Cipher.getInstance("DES/ECB ...