还没被玩坏的robobrowser(3)——简单的spider
背景
做一个简单的spider用来获取python selenium实战教程的一些基本信息。因为python selenium每年滚动开课,所以做这样一个爬虫随时更新最新的开课信息是很有必要的。
预备知识
任务分解
这个简单的spider任务可以进行进一步的分解:
- 访问python selenium自动化测试班页面;
- 获取这个班的名称--python selenium自动化测试班;
- 获取这个班的描述--独一无二的超低价培训-口碑之选;
- 获取开班的时间--第五期报名截止2015年1月17日,开课时间1月17日;
- 获取报名方式--课程咨询请联系QQ:12079456;
- 获取selenium进阶群的群号--技术交流+selenium 进阶群:189116036;
- 获取授课老师信息--虫师;
正式开始
import re
from robobrowser import RoboBrowser # 访问python selenium自动化测试班的页面 url = 'http://itest.info/courses/2'
b = RoboBrowser(history=True)
b.open(url) # 获取这个班的名称--python selenium自动化测试班
class_name = b.select('.headline h2')
print class_name[0].text # 获取这个班的描述--独一无二的超低价培训-口碑之选
class_desc = b.select('.tag-box')
print class_desc[0].text # 获取开班的时间--**第五期报名截止2015年1月17日,开课时间1月17日
class_time = b.select('h4')
print class_time[0].text # 获取授课老师信息--虫师
teacher = b.select('.thumbnail-style h3')
print teacher[0].text # 获取报名方式--**课程咨询请联系QQ:12079456
qq = b.find(text=re.compile('QQ'))
print qq # 获取selenium进阶群的群号--**技术交流+selenium 进阶群:189116036
qq_group = b.find(text=re.compile('\+selenium'))
print qq_group
简单讲解
- b = RoboBrowser(history=True) b.open(url) 用来创建browser和打开url,没什么新意,记住就好了;
- b.select() 方法可以接受css选择器,返回页面上所有符合条件的元素的集合,也就是说返回的是list,可以进行迭代;
- b.find() 的用法在这里,只返回1个精确的结果;
- 注意,find和select方法返回的均是Beautiful Soup的tag对象或对象集合;
如果你对上面的例子不甚理解那也没什么关系,后面几节会按照场景进行分析讲解。
文本版权归乙醇所有,欢迎转载,但请标明出处。
下一节:robobrowser抓取网页内容
还没被玩坏的robobrowser(3)——简单的spider的更多相关文章
- 还没被玩坏的robobrowser(1)-简介
今天偶然发现了一个很有意思的python库——robobrowser.简单的看了一下,觉得这个东东作为轻量的爬虫还是很适合的.另外这个做一些简单的web测试也未尝不可. 好了,那么问题来了. 什么是r ...
- 还没被玩坏的robobrowser(2)——安装及快速开始
安装robobrowser 注意:这里假设你知道如何使用pip安装python的库的知识,如果你不了解这一块的话,点这里获取帮助. 强烈推荐使用pip安装. pip install robobrows ...
- 还没被玩坏的robobrowser(8)——robobrowser的实现原理
背景 学习使用工具实际上不难,不过我们应该通过阅读工具源码来提升自己的水平. 多读代码,读好代码.很不错,robobrowser的代码简单易懂,值得学习. 预备知识 源码地址 一起其实是从browse ...
- 还没被玩坏的robobrowser(7)——表单操作
背景 有一些站点是需要登录之后才能抓取内容的,另外做web测试的时候登录是家常便饭. 这一节里我们就以登陆testerhome为例,讲解一下robobrowser中form的操作. 预备知识 get_ ...
- 还没被玩坏的robobrowser(6)——follow_link
背景 在做spider的时候,我们经常会有点击链接的需求. 考虑这样的一个简单spider:获取qq.com主页上的今日话题中的内容. 一般思路是先去qq.com首页上找到今日话题的链接,然后点击这个 ...
- 还没被玩坏的robobrowser(5)——Beautiful Soup的过滤器
背景 本节的知识还是属于Beautiful Soup的内容. Beautiful Soup的find和find_all方法非常强大,他们支持下面一些类型的过滤器. 字符串 最简单的过滤器是字符串.在搜 ...
- 还没被玩坏的robobrowser(4)——从页面上抓取感兴趣的内容
背景 本节的知识实际上是属于Beautiful Soup的内容. robobrowser支持Beautiful Soup,一般来说通过下面3个方法获取页面上感兴趣的内容 find find_all s ...
- 漫谈可视化Prefuse(四)---被玩坏的Prefuse API
这个双12,别人都在抢红包.逛淘宝.上京东,我选择再续我的“漫谈可视化”系列(好了,不装了,其实是郎中羞涩...) 上篇<漫谈可视化Prefuse(三)---Prefuse API数据结构阅读有 ...
- .CO域名快被这帮搞IT的玩坏了……
鉴于近来国内访问Google的服务受阻,greatfire.org于前天推出了其基于亚马逊AWS的Google搜索镜像网站,地址是sinaapp.co.该网站随后因多家海外媒体的报道和众多微博大V的转 ...
随机推荐
- css调整图片位置布局
<?xml version="1.0" encoding="utf-8"?><!DOCTYPE wml PUBLIC "-//WAP ...
- jdbc:initialize-database标签的研究
在spring的applicationContext.xml中如果引入了:<?xml version="1.0" encoding="UTF-8"?> ...
- Linux中awk命令的简单用法
一.用例1: cat /proc/meminfo|grep "MemTotal"|awk '{print $2}' 说明,$2表示第2位,$0表示全部,如需表示$,可用$$转义.
- j2ee数据库连接池配置大全
<!--web.xml begin--> <!--web.xml Spring ApplicationContext配置文件的路径 ,可使用通配符,多个路径用,号分隔 --> ...
- loadrunner -27778 https连接问题
Error -27778: SSL protocol error when attempting to read with host "×××.*****"
- Oracle Data Integrator 12c-模型(Model)和 数据存储(DataStore)
一.概念 Model模型: 描述关系型数据的模型. 是一组存放在特定的技术(如Oracle)的数据存储的集合.例如当技术为Oracle时,对应于数据库的Scheme DataStore: 数据存储 一 ...
- [Android]Recovery调用外部Shell脚本,Shell脚本使用ui_print方法
busybox_bin=/sbin/busybox # 获取PIPE get_outfd(){ | $busybox_bin grep -q 'pipe'; then else local all_p ...
- ISCSI测试
Initiator为应用客户端,服务端Target包括设备服务器端和队列管理两部分.服务端两种共享方式:1.在服务端共享分区2.在服务端以文件方式作为共享设备共享出来 构建ISCSI网络存储 测试环境 ...
- 移动端强大的富文本编辑器richeditor-android
代码地址如下:http://www.demodashi.com/demo/14883.html 一.运行效果图 二.代码具体实现 1.引入richeditor-android richeditor-a ...
- Spring 3整合Quartz 2实现定时任务三:动态暂停 恢复 修改和删除任务
前面我们已经完成了spring 3和quartz 2的整合以及动态添加定时任务,我们接着来完善它,使之能支持更多的操作,例如暂停.恢复.修改等. 在动态添加定时任务中其实已经涉及到了其中的一些代码,这 ...