Python网页信息获取与解析:使用requests库爬取HTML数据的大数据时代应用

>>> from env_helper [id_1054633183] info; info()

Python网页信息获取与解析:使用requests库爬取HTML数据的大数据时代应用

页面更新时间: 2024-01-20 22:01:19
运行环境:
Linux 有一个发行版本叫做 Debian GNU/Linux 12 ,其版本名称为 bookworm 。
操作系统的内核是 Linux-6.1.0-17-amd64-x86_64-with-glibc2.36
    Python版本: 3.11.2

5.4. 网页信息获取与解析

大数据的时代,信息几乎覆盖了社会体系中的所有行业。大数据是在一定时间范围内,用常规软件工具进行捕捉、管理和处理的数据集合。它需要新的处理模式,才能具有更强的决策力、洞察发现力和流程优化能力,是海量、高增长率和多样化的信息资产。对网页信息进行处理已成为大势所趋。

前面我们已经对 html 的基本组成有所了解了。现在,我们要使用 Python 来读取一个 HTML 的具体信息。Python 拥有许多用于处理网页的库,这些库各自的功能都十分强大。下面简单介绍一下处理网页的库。

5.4.1. 安装requests

先将第三方库安装好,然后找一个感兴趣的网页进行测试。

通过requests库爬取html页面的内容。

安装 requests 可以使用pip安装

pip install requests

在 Debian / Ubutnu 中使用

sudo apt install -y python3-requests

完成后测试:

>>> import requests

5.4.2. requests主要方法

requests.get()

使用 requests 库发送 GET 请求,指定了 URL 和参数 params 等其他关键字参数 **kwargs 。

向“”对应的服务器发送相应的 get 请求,以此来获得对应的内容。

>>> url=“https://www.osgeo.cn/”这个网址。
>>> html = requests.get(url, timeout=10000)
>>> demo = html.text

>>> html.status_code

200

html是请求返回的一个响应对象。主要的属性有五个分别是:

request.head()

返回响应头信息。

>>> requests.head(url).headers

{'Server': 'nginx/1.18.0', 'Date': Sat 是星期六的意思,20 表示 20 号,Jan 是一月的英文缩写,2024 是年份,14:01:31 是具体的时间点,GMT 表示格林威治标准时间。所以这句话可以改写为:星期六,2024 年 1 月 20 日 14 时 01 分 31 秒,格林威治标准时间。, 'Content-Type': 这是一个以 "text/html; charset=UTF-8" 形式呈现的内容,其中 "text/html" 表示文本的格式为 HTML,"charset=UTF-8" 则指定了字符编码为 UTF-8。, 'Content-Length': '87', 'Connection': 'keep-alive'}

requests.post()

你也许时常想要为 URL 的查询字符串传递某种数据,这是可以做到的。如果是手工构建 URL,数据会以键/值对的形式置于 URL 中,并且跟在一个问号之后。例如,httpbin.org/get?key=val

>>> payload = {'key1': 'value1', 'key2': 'value2'}
>>> r = requests.post("http://httpbin.org/post", data=payload)
>>> r.text

该请求的参数为空对象,数据为空字符串,文件为空对象,表单包含两个键值对,其中键“key1”对应值“value1”,键“key2”对应值“value2”,请求头中的“Accept”字段值为……/"url" 的值为http://httpbin.org/post"n}n'

二进制响应内容

Requests 能够自动把返回的值解析成二进制形式的内容,能够被用来下载图片以及视频资源。

>>> r.content

n  "headers" 中 "Accept" 的值为 。/", n    "Accept-Encoding": "gzip, deflate, br", n    "Content-Length": "23", n    "Content-Type": "application/x-www-form-urlencoded", n    "Host": "httpbin.org", n    "User-Agent": "python-requests/2.28.1", n    "X-Amzn-Trace-Id": "Root=1-65abd23d-19403c074bfb7cf32f0f1b5c"n  }, n  "json": null, n  "origin": "47.93.236.110", n  "url": "http://httpbin.org/post"n}n'

JSON 响应内容

Requests 中存在一个内置的 JSON 解码器,它能够帮助你对 JSON 数据进行处理。

>>> r.json()

{'args': {},
 'data': '',
 'files': {},
'form' 包含着 'key1' 以及其对应的值 'value1' ,同时还包含着 'key2' 以及其对应的值 'value2' 。
 'headers': {'Accept': '/',
'Accept-Encoding' 包含 'gzip'、'deflate' 和 'br' 这些编码方式。
  'Content-Length': '23',
Content-Type 为 application/x-www-form-urlencoded 。
  'Host': 'httpbin.org',
'User-Agent' 为 'python-requests/2.28.1'
“X-Amzn-Trace-Id”的值为“Root=1-65abd23d-19403c074bfb7cf32f0f1b5c”。
 'json': None,
 'origin': '47.93.236.110',
 'url': 'http://httpbin.org/post'}

原始响应内容

在特殊的情形下,你或许希望获取源自服务器的原始套接字响应,此时你能够访问 r.raw。倘若你确实有这样的想法,那么请务必在初始请求中设定 stream=True。具体的做法如下:

>>> r = requests.get(“https://api.github.com/events”这个地址用于获取相关事件的信息。它是一个特定的网络链接,指向 GitHub 平台上的事件相关资源。通过访问这个链接,可以获取到关于各种事件的详细数据。, stream=True)
>>> r.raw

<urllib3.response.HTTPResponse at 0x7fa5a41d7a60>

>>> r.raw.read(10)

b'x1fx8bx08x00x00x00x00x00x00x03' 是一个特定的编码或标识,其具体含义可能因上下文而异。目前仅从这串字符本身难以确切理解其具体所指或用途。它可能在特定的系统、程序或领域中有特定的意义和作用,但仅从这一字符序列无法直接得知其详细信息。

你可能想看:
« 上一篇
下一篇 »

相关推荐

python爬虫教程PDF,Python爬虫书PDF

2026年09月02日

31阅读

外国教程python,python编程教学视频

2026年09月02日

25阅读

python简明教程沈洁元,python详细基础教程

2026年09月02日

21阅读

python库包教程,python 包

2026年09月02日

27阅读

python教程大全集,python教程600集

2026年09月02日

26阅读

python入门教程完整版,python零基础入门全套教程视频

2026年09月02日

22阅读