还没被玩坏的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的转 ...
随机推荐
- phpstudy 开启apache反向代理
vhosts.conf 1 2 3 4 5 6 7 8 9 10 11 <VirtualHost *:8080> ServerAdmin webmaster@dummy-host.exam ...
- 使用jsp内置对象request获取表单提交中文内容乱码的解决办法
page1.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pag ...
- C/S通信模型与B/S通信模型介绍
1.客户端与服务器之间的通信模型 基于Socket连接的客户端与服务器之间的通信模型图如上图所示,整个通信过程如下所示: (1) 服务器端首先启动监听程序,对指定的端口进行监听,等待接收客户端的连接请 ...
- Asp.Net 之 禁用TextBox的记忆功能
IE提供了一个自动完成功能可以记忆我们的输入内容(如登录帐号等),方便下一次快速地录入类似资料.这确实是一个非常友好的功能,在操作时只需用鼠标双击文本框或输入前几个字符,系统会自动列出以前的录入历史供 ...
- keytab生成不了
vim /var/kerberos/krb5kdc/kadm5.acl 将*e改成* /etc/init.d/kadmin restart 重启kadmin
- 微信小程序 - 自定义弹窗组件
2019-01-06:简化了一些代码,以及增加了可用性. // 弹窗配置 dialogConfig: { // 弹窗 dialogvisible: false, options: { // 显示关闭按 ...
- vsphere storage appliance工作原理和实施
摘录自:http://www.07net01.com/storage_networking/VMwarexunihuazhiVSA_vSphere_Storage_Appliance_qunji_yi ...
- anagrams 查找序列里具有相同字符但顺序不同的单词
[LeetCode] Anagrams Given an array of strings, return all groups of strings that are anagrams. Not ...
- 【转载】Java 网络编程
本文主要是自己在网络编程方面的学习总结,先主要介绍计算机网络方面的相关内容,包括计算机网络基础,OSI参考模型,TCP/IP协议簇,常见的网络协议等等,在此基础上,介绍Java中的网络编程. 一. ...
- in文件
in文件: 被调用的配置文件