什么是爬虫?
爬虫实际上就是采集网络上数据的一段程序。
我们可以来解剖一下这句话,去掉一切修饰词,可以看到其实爬虫指的就是一段程序,当然如何不是程序,而真的是爬虫,那我一定敬而远之。那么再来看这段程序的作用是做什么,很好,它是采集数据的,这个数据在哪?,网络上。
分析完这句话,大概会产生如下疑问?如何采集?采集什么数据?采集数据做什么?
如何采集?
简单来说,爬虫程序会请求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)
运行结果如图:
运行结果
网友评论