还没被玩坏的robobrowser(6)——follow_link
背景
在做spider的时候,我们经常会有点击链接的需求。
考虑这样的一个简单spider:获取qq.com主页上的今日话题中的内容。
一般思路是先去qq.com首页上找到今日话题的链接,然后点击这个链接到内容页面,最后抓取里面的内容就好了。
这一节里我们就要实现这个功能。
预备知识
robobrowser的follow_link方法可以点击链接并自动完成跳转。
代码
#coding: utf-8
import re
from robobrowser import RoboBrowser
url = 'http://www.qq.com/'
b = RoboBrowser(history=True)
b.open(url)
# 获取今日话题这个link
today_top = b.find(id='todaytop').a
print today_top['href']
b.follow_link(today_top)
# 这个时候已经跳转到了今日话题的具体页面了
# 打印标题
title = b.select('.hd h1')[0]
print '*************************************'
print title.text
print '*************************************'
# 打印正文内容
print b.find(id='articleContent').text
讨论
注意一下follow_link的用法。一般来说都是用find/select/find_all方法过滤出相应的链接,然后调用b.follow_link(link)的方式去点击该链接。
文本版权归乙醇所有,欢迎转载,但请标明出处。
下一节: 提交表单
还没被玩坏的robobrowser(6)——follow_link的更多相关文章
- 还没被玩坏的robobrowser(8)——robobrowser的实现原理
背景 学习使用工具实际上不难,不过我们应该通过阅读工具源码来提升自己的水平. 多读代码,读好代码.很不错,robobrowser的代码简单易懂,值得学习. 预备知识 源码地址 一起其实是从browse ...
- 还没被玩坏的robobrowser(1)-简介
今天偶然发现了一个很有意思的python库——robobrowser.简单的看了一下,觉得这个东东作为轻量的爬虫还是很适合的.另外这个做一些简单的web测试也未尝不可. 好了,那么问题来了. 什么是r ...
- 还没被玩坏的robobrowser(7)——表单操作
背景 有一些站点是需要登录之后才能抓取内容的,另外做web测试的时候登录是家常便饭. 这一节里我们就以登陆testerhome为例,讲解一下robobrowser中form的操作. 预备知识 get_ ...
- 还没被玩坏的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 ...
- 漫谈可视化Prefuse(四)---被玩坏的Prefuse API
这个双12,别人都在抢红包.逛淘宝.上京东,我选择再续我的“漫谈可视化”系列(好了,不装了,其实是郎中羞涩...) 上篇<漫谈可视化Prefuse(三)---Prefuse API数据结构阅读有 ...
- .CO域名快被这帮搞IT的玩坏了……
鉴于近来国内访问Google的服务受阻,greatfire.org于前天推出了其基于亚马逊AWS的Google搜索镜像网站,地址是sinaapp.co.该网站随后因多家海外媒体的报道和众多微博大V的转 ...
随机推荐
- common.js 2017
String.IsNullOrEmpty = function (v) { return !(typeof (v) === "string" && v.length ...
- C++ 第二课:操作符号的优先级
优先级 操作符 1 () [] -> . :: ! ~ ++ -- 2 - (unary) * (dereference) & (addre ...
- MySQL事物系列:3:innodb_flush_log_at_trx_commit小实验
1:创建表和存储过程 mysql> create database trx; Query OK, 1 row affected (0.02 sec) mysql> USE trx Data ...
- 对2个hex(16进制)字符串进行异或操作
private static String hexXOR(String hex1, String hex2){ BigInteger i1 = new BigInteger(hex1, 16); Bi ...
- java byte数组与String互转
java byte数组与String互转 CreationTime--2018年7月6日14点53分 Author:Marydon 1.String-->byte[] 方法:使用String ...
- 〖Android〗sshd for android, 及映射根文件系统至本地盘符
严重问题: 若移植失败将可能直接导致手机***无法开机***,导入相关文件需慎重! 达成效果: 1. ssh 远程登录 Android 终端: 2. sftp 挂载/映射 Android 根文件系统至 ...
- Yii2框架bootstrap样式理解
Yii2框架默认採用了bootstrap作为CSS风格,各种视图类组件都如此.之前一直採用默认风格,并在必要的时候加入或者改动一下class来达到目的.但在改版Yii1.1的orange项目时.发现之 ...
- 【树莓派+.NET MF打造视频监控智能车】控制篇(树莓派)
对已经具备一定Linux基础的人来说,树莓派学习起来应该非常简单自然.在他们眼中,树莓派就是一个简易版的,卡通版的Linux而已.但是对我这样一个早已习惯微软技术生态系统的人或者初学者来说,要实现一个 ...
- Linux系统Ubuntu安装zookeeper
1. 下载zookeeper二进制安装包 下载地址:http://apache.dataguru.cn/zookeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gz ...
- Oracle Tuxedo的配置文件配置详解
# (c) 2003 BEA Systems, Inc. All Rights Reserved. #ident "@(#) samples/atmi/simpapp/ubbsimple $ ...