第一章 网络爬虫学习报告
1. 学习内容概述
今天主要学习了 网络爬虫的基本概念、分类。还学习了网页的相关知识,并实践使用 Python 的 `requests` 库获取百度首页的 HTML 内容
2. 网络爬虫的概念
网络爬虫又称 “网络蜘蛛”,是一种自动抓取互联网信息的程序。它按照一定的规则自动访问网页,并提取所需的数据。
3.分类
(1)通用网络爬虫( General Purpose Web Crawler )原理:通用网络爬虫又称全网爬虫( Scalable Web Crawler ),爬行对象从一些种子 URL 扩充到整个 Web,主要为门户站点搜索引擎和大型 Web 服务提供商采集数据。
(2)聚焦网络爬虫( Focused Web Crawler )原理:聚焦网络爬虫( Focused Crawler ),又称主题网络爬虫( Topical Crawler ),是指选择性地爬行那些与预先定义好的主题相关页面的网络爬虫。
(3)增量式网络爬虫( Incremental Web Crawler )原理:增量式网络爬虫( Incremental Web Crawler )是指对已下载网页采取增量式更新和只爬行新产生的或者已经发生变化网页的爬虫,它能够在一定程度上保证所爬行的页面是尽可能新的页面。
(4)深层网络爬虫( Deep Web Crawler )原理:Deep Web 是那些大部分内容不能通过静态链接获取的、隐藏在搜索表单后的,只有用户提交一些关键词才能获得的 Web 页面。
主要用途
搜索引擎(如 Google、百度)的网页抓取
数据采集与分析(如舆情监控、价格比对)
自动化测试(如网页内容检查)
4.HRL
URL采用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。URL的格式由三部分组成:
第一部分是协议;第二部分是存有该资源的主机IP地址(有时也包括端口号);第三部分是主机资源的具体地址,如目录和文件名等。
注:协议是file代表存放在主机
协议是http代表存放在服务器
5.请求方式
在客户机和服务器之间进行请求响应时,两种最常被用到的方式是GET和POST:
GET - 从指定的资源请求数据。POST - 向指定的资源提交要被处理的数据。 其他请求方式 HEAD - 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头;PUT - 从客户端向服务器传送的数据取代指定的文档的内容;DELETE - 请求服务器删除指定的页面;CONNECT - HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器;OPTIONS - 允许客户端查看服务器的性能;TRACE - 回显服务器收到的请求,主要用于测试或诊断;PATCH - 是对PUT方法的补充,用来对已知资源进行局部更新。
6.HTTPS和HTTP的区别
HTTP:(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。HTTP是一个基于TCP/IP通信协议来传递数据(HTML文件、图片文件、查询结果等)。
HTTPS:(Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的HTTP通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。
区别:HTTPS在HTTP的基础下加入SSL层,HTTPS的安全基础是SSL。
7.代码实现使用 requests
获取百度 HTML
源代码:
import requests
def getHTMLText(url):
try:
r = requests.get(url, timeout=30)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return \"产生异常\"
if __name__ == \"__main__\":
url = \"http://www.baidu.com\"
print(getHTMLText(url))
新建文本文档,将格式改为\".html\"