爬虫实际上就是采集网络上数据的一段程序,如果把互联网比喻成一个蜘蛛网,那么蜘蛛就是在网上爬来爬去的蜘蛛,爬虫程序通过请求url地址,根据响应的内容进行解析采集数据, 比如:如果响应内容是html,分析dom结构,进行dom解析、或者正则匹配,如果响应内容是xml/json数据,就可以转数据对象,然后对数据进行解析。
资源视角
互联网上一切都是资源,比如视频资源,新闻资源等,爬虫实际上就是批量将别人的资源采集下来变成自己的资源的程序。
假设我需要抓取重定向科技目前开设的所有测试课程,那么
这样就可以实现一个最简单的网络爬虫了。
有时候自己去造一些测试数据是很麻烦的事情,这时候我们就可以使用爬虫去获取其他站点的类似数据,对数据进行加工后就可以当测试数据来使用了。
我们使用python来实现最简单的爬虫。
大家可以在测试教程网requests教程中找到requests库的一些典型用法。
我的电脑上环境是这样
不需要与我的版本保持完全一致,只需要大于等于我使用的版本就可以了
我们现在来实现第一个超级简单的网络爬虫 用来抓取重定向科技目前开设的所有测试课程,并打印出来,步骤大概是这样子
我们在编写爬虫的时候往往会花很多时间在分析html代码上,毕竟重要的信息都包含在html代码中,我们需要找到合适的特征,通过固定的套路去解析html,获取特定内容。
课程名称部分的html代码如下所示
<div class="col-md-3 col-sm-6"> <div class="servive-block-in servive-block-colored servive-block-grey"> <h4>性能测试从入门到精通班</h4><div><i class="icon-rocket"></i> </div> <p>2017年09月23日开课,为期3个月</p></div>
可以看到,课程名称的html标签是,通过搜索整个页面,我们发现页面上只有4个h4,也就是说,只要获取到页面上所有的h4,我们就能把课程名称给解析出来。
分析html一般有下面一些套路
解析html代码
大家可以先去了解一下html的基础知识,比较有用的是
Beautiful Soup库可以帮我们解析html代码,所谓的解析,无非是做下面的一些事情
在这个例子里,我们就是要找到所有元素,并获取所有元素的文本。
代码
新建名为的文件,输入下面的内容
import requestsfrom bs4 import BeautifulSoupurl = '' # 定义被抓取页面的url# 获取被抓取页面的html代码,并使用html.parser来实例化BeautifulSoup,属于固定套路soup = BeautifulSoup(requests.get(url).text, 'html.parser')# 遍历页面上所有的h4for course in soup.find_all('h4'): # 打印出h4的text属性 print(course.text)
运行
在命令行中输入
python get_courses.py
预期结果
如果一切正常,那么应该可以看到下面的结果
性能测试从入门到精通班接口自动化测试开发--Python班Selenium自动化测试--Java班Selenium自动化测试--Python班
如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h60120.shtml