爬虫思想简述

什么是爬虫?

爬虫实际上就是采集网络上数据的一段程序
我们可以来解剖一下这句话,去掉一切修饰词,可以看到其实爬虫指的就是一段程序,那么再来看这段程序的作用是做什么,很好,它是采集数据的,这个数据在哪?,网络上
分析完这句话,大概会产生如下疑问?如何采集?采集什么数据?采集数据做什么?

如何采集?

简单来说,爬虫程序会请求url地址,然后根据响应的内容进行采集,比如:如果响应内容是html,分析dom结构,进行dom解析或者正则匹配,如果响应内容是xml/json数据,转换数据对象,然后对数据进行解析。

采集什么数据?

互联网上一切都是资源,如视频资源,热点资源等等,而这些资源就是我们需要的。

采集数据做什么?

采集数据就是要将别人的资源采集下来,然后加以利用变成我们自己的资源,如:

  • 从某些网站爬取需要的图片,展示在自己的网站里
  • 将网站中的热点采集下来,进行数据分析
  • 这里着重说明一下,爬虫可以帮助测试工程师爬取其他站点的数据,然后加工后,当成自己的测试数据使用。

python爬虫的模块(基于python3)

python中提供了很多模块包,帮助我们更好的实现爬虫:

  • urllib
  • urllib3
  • http.cookiejar
  • requests
  • threading
  • re
  • json
  • pyquery
  • selenium

简单的爬虫架构及其运行流程

爬虫架构

爬虫架构

运行流程

运行流程

URL管理器

作用

目的:管理待抓取的URL集合和已经抓取到的URL集合
注意:防止重复抓取,防止循环抓取

  • 添加新URL到待爬取的集合中
  • 判断待添加URL是否已经在容器之中
  • 判断是否还有待爬取的URL
  • 获取待爬取URL
  • 将URL从待爬取移动到已爬取

实现方式

内存: 如Python内存,使用set()数据结构,待爬取URL集合,已爬取URL集合
关系数据库: 如MySQL,urls(url,is_crawled)
缓存数据库:如redis,使用set()数据结构,待爬取URL集合,已爬取URL集合

网页下载器

将互联网上URL对应的网页下载到本地的工具
网页下载器

网页解析器

网页解析器

Python支持的几种网页解析器

几种

Beautiful Soup

创建
创建
搜索节点
搜搜
访问节点
访问

简单实例

爬虫基本流程
实例流程
接下里我们来实际操作一下,首先,确定目标,看一下慕课网中的职业路径下都包括哪些成长路径慕课网职业路径,我们要采集的就是导航栏中的导航文字,如图:
慕课网职业路径部分截图

实现步骤:

  1. 分析html代码
    点击右键,点击查看页面源代码,找到所需代码,如图:
    html代码
    可以看到文字处于classnavtextspan标签中
  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')
  • 输出classnavtextspan标签中的文字
for classimooc in soup.find_all('span',attrs={'class':'navtext'}):
    print(classimooc.text)

另一种写法:

for classimooc in soup.find_all(class_='navtext'):
    print(classimooc.text)

运行结果如图:
运行结果

参考链接

学习资源

猜你喜欢

转载自blog.csdn.net/weixin_38470851/article/details/80810115
今日推荐