背景

在做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)的方式去点击该链接。

文本版权归乙醇所有,欢迎转载,但请标明出处。

下一节: 提交表单

最新文章

  1. 网络第二节——AFNworking
  2. leetcode 315. Count of Smaller Numbers After Self 两种思路(欢迎探讨更优解法)
  3. atitit.提升备份文件复制速度(1) -----分析统计问题and解决方案
  4. 按后退键退出Android程序
  5. Html 修改placeholder的颜色属性css样式
  6. JVM——类的加载过程
  7. Matlab 图像画在坐标轴下
  8. Android studio中Rendering Problems不能可视化操作的解决办法
  9. P2184 贪婪大陆
  10. Javascript原型钩沉
  11. moodle其他代码
  12. Linux IPC实践(1) -- 概述
  13. MinGW 编译 libaom 1.0.0 注意事项
  14. I/O多路复用、协程、线程、进程
  15. vscode git設置
  16. python 中: lambda
  17. 空间分析工具:GIS
  18. react-router 父子路由同时要接收 params 的写法
  19. DataTable.Select 处理关联表数据
  20. [算法进阶0x10]基本数据结构A作业总结

热门文章

  1. C++缓冲区溢出
  2. PPT模板中的”书签”
  3. websocket与canvas[转]
  4. Android ART runtime简述
  5. JVM的结构
  6. urlparse基本运用
  7. 基于Windows下使用Docker 部署Redis
  8. Q值, 电感Q因素, 电感品质因素, Inductor Q, Quality Factor
  9. 转:典型开源3D引擎分类比较
  10. AllInOneConveter——编码转换工具