Python爬取静态网页操作

本文介绍如何使用Python的Requests库抓取静态网页,涵盖库的安装、获取响应内容及解析响应状态码等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python爬取静态网页

参考书籍:唐松《Python网络爬虫从入门到实践》

简介

静态网页一般指纯粹的HTML格式的网页,对于爬虫来说,静态网页的数据都比较容易获取,利用好Requests库就能轻松发送HTTP请求,获取到网页的数据。

Requests库的安装

Requests库可以帮助我们获取到响应内容,再通过一些参数来满足我们的需求,它的安装也十分简单,对于Windows用户来说,在已经装好Python环境之后,可以通过Win+R快捷键打开cmd命令行,输入:

pip install requests

就可以等待安装了

获取响应内容

Requests常用于获取某个网页的内容。使用代码

r = request.get(url)

可以返回一个名为r的response对象,url可以替换为爬取网页的详细网址。存储了响应的内容,利用不同的参数获取需要的信息,响应内容包括如下:

  • r.text是服务器响应的内容,会自动根据响应头部的字符编码进行解码
  • r.encoding是服务器内容使用的文本编码
  • r.status_code用于检测响应的状态码,用于检测请求是否被正确响应。200表示请求成功;4xx表示客户端错误;5xx表示服务器错误响应。
  • r.content是字节方式的响应体,会自动解码gzip和deflate编码的响应数据
  • r.json()是Requests内置的JSON解码器。

运行代码如下所示:

print("文本编码:",r.encoding)
print("响应状态码:",r.status_code)
print("字符串方式的响应体:",r.text)
print("字节方式的响应体",r.content)

运行结果如下所示:
获取信息展示
这个时候,已经成功获取到信息并且输出了。

### 如何使用 Python 爬取静态网页数据 #### 使用 `requests` 和 `BeautifulSoup` 对于爬取静态网页的内容,可以采用 Python 的 `requests` 库来获取网页内容,并利用 `BeautifulSoup` 来解析 HTML 并提取所需数据[^1]。 ```python import requests from bs4 import BeautifulSoup def fetch_web_content(url): try: response = requests.get(url) if response.status_code == 200: return response.text else: print(f"Failed to retrieve data: {response.status_code}") return None except Exception as e: print(f"Error occurred while fetching the web content: {e}") return None def parse_html(html_doc): soup = BeautifulSoup(html_doc, 'html.parser') # 假设要抓取所有的链接作为例子 links = [] for link in soup.find_all('a'): href = link.get('href') text = link.string if href and text: links.append((text.strip(), href)) return links if __name__ == "__main__": url = "http://example.com" html_content = fetch_web_content(url) if html_content is not None: parsed_links = parse_html(html_content) for title, link in parsed_links[:5]: # 只打印前五个链接作为示例 print(f"{title}: {link}") ``` 这段代码展示了如何通过发送 HTTP 请求获得目标页面的源码字符串形式返回值;接着创建了一个新的 `BeautifulSoup` 对象用于处理这些原始文档。最后遍历所有 `<a>` 标签找到其中包含的有效超链接及其对应的显示文字。 #### 利用 `urllib.request` 另一种方式则是直接调用 `urllib.request` 中的 `urlopen()` 方法访问指定 URL 地址所指向资源,并将其转换成可读格式以便进一步操作[^2]。 ```python import urllib.request url = 'http://www.example.com' response = urllib.request.urlopen(url) html = response.read().decode('utf-8') print(html) # 输出整个HTML结构体至控制台窗口内查看 ``` 上述实例说明了怎样打开一个特定网址连接并读取出其完整的 HTML 结构体,之后可以根据实际需求对这个字符串做更多自定义的操作,比如正则表达式的匹配查找等。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值