什么是爬虫?
爬虫实际上就是采集网络上数据的一段程序.
我们可以来解剖一下这句话, 去掉一切修饰词, 可以看到其实爬虫指的就是一段程序, 当然如何不是程序, 而真的是爬虫, 那我一定敬而远之. 那么再来看这段程序的作用是做什么, 很好, 它是采集数据的, 这个数据在哪?, 网络上.
分析完这句话, 大概会产生如下疑问? 如何采集? 采集什么数据? 采集数据做什么?
如何采集?
简单来说, 爬虫程序会请求 url 地址, 然后根据响应的内容进行采集, 比如: 如果响应内容是 html, 分析 dom 结构, 进行 dom 解析或者正则匹配, 如果响应内容是 xml/json 数据, 转换数据对象, 然后对数据进行解析.
采集什么数据?
互联网上一切都是资源, 如视频资源, 热点资源等等, 而这些资源就是我们需要的.
采集数据做什么?
采集数据就是要将别人的资源采集下来, 然后加以利用变成我们自己的资源, 如:
从某些网站爬取需要的图片, 展示在自己的网站里
将网站中的热点采集下来, 进行数据分析
这里着重说明一下, 爬虫可以帮助测试工程师爬取其他站点的数据, 然后加工后, 当成自己的测试数据使用.
python 爬虫的模块 (基于 python3)
python 中提供了很多模块包, 帮助我们更好的实现爬虫:
urllib
urllib3
http.cookiejar
requests
threading
re
json
pyquery
selenium
简单实例
接下里我们来看一下慕课网中的职业路径下都包括哪些成长路径 慕课网职业路径 , 我们要录取的就是导航栏中的导航文字, 如图:
慕课网职业路径部分截图
实现步骤:
1. 分析 html 代码
点击右键, 点击查看页面源代码, 找到所需代码, 如图:
html 代码
可以看到文字处于 class 为 navtext 的 span 标签中
2. 编写程序
引入所需模块
import requests
from bs4 import BeautifulSoup
发送 get 请求, 获得页面 html 代码
url="https://class.imooc.com/"
htmltext=requests.get(url).text
使用 BeautifulSoup 解析 html, 创建 BeautifulSoup 对象
语法: soup=BeautifulSoup(html_doc(html 文档字符串),'html.parser'(html 解析器),from_encoding='utf-8'(HTML 文档编码))
soup=BeautifulSoup(htmltext,'html.parser')
输出 class 为 navtext 的 span 标签中的文字
for classimooc in soup.find_all('span',attrs={'class':'navtext'}):
print(classimooc.text)
另一种写法:
for classimooc in soup.find_all(class_='navtext'):
print(classimooc.text)
运行结果如图:
运行结果
参考链接
测试教程网
大话爬虫的基本套路
来源: http://www.jianshu.com/p/105857f837ef