📅  最后修改于: 2023-12-03 14:52:31.157000             🧑  作者: Mango
Python 是一种广泛应用的编程语言,能够读取互联网上的信息是其一个重要的应用场景之一。本篇文章将介绍如何在 Python 中读取网站,并提供相应代码示例。
requests
是 Python 中用于发送 HTTP 请求的第三方库。它允许轻松访问网站的 HTML 内容、Cookies、Headers 等。
使用 pip
命令可以轻松地安装 requests
库。
pip install requests
使用 requests.get()
方法能够获取相应页面的 HTML 内容。
import requests
url = "https://example.com"
response = requests.get(url)
print(response.text) # 打印 HTML 内容
除了发送基础请求外,还可以将参数添加在 URL 中,这通常在使用 API 时应用生效。
import requests
url = "https://example.com"
payload = {"key1": "value1", "key2": "value2"} # 发送的参数
response = requests.get(url, params=payload)
print(response.url) # 打印出完整 URL
有些网站检测流量来源,通过检查请求 Header 中的信息。如果没有这些信息,它们可能会阻止请求,或者显示与正常情况不同的内容。
import requests
url = "https://example.com"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"}
response = requests.get(url, headers=headers)
print(response.text) # 打印 HTML 内容
当网站需要登录时,常常使用 Cookies 来跟踪用户的登录状态。使用 requests
库,能够轻松地提供这些信息,以便能够继续登录会话。
import requests
url = "https://example.com/login"
payload = {"username": "apy", "password": "123456"} # 发送的参数
response = requests.post(url, data=payload)
cookies = response.cookies # 获取 cookies
print(response.text) # 打印 HTML 内容
Beautiful Soup
库是一个用于解析 HTML 和 XML 文档的 Python 库。它使得即便在文件结构混乱的情况下,一次性搜索文档更加容易。
使用 pip
命令可以轻松地安装 Beautiful Soup
库。
pip install beautifulsoup4
使用 beautifulsoup4
库能够轻松地解析 HTML 内容。
from bs4 import BeautifulSoup
import requests
url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
print(soup.prettify()) # 打印格式化之后的 HTML 内容
使用 beautifulsoup4
库能够轻松地搜索并提取 HTML 标签。
from bs4 import BeautifulSoup
import requests
url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
# 打印出所有的标签
for tag in soup.find_all(True):
print(tag.name)
re
包使用beautifulsoup4
库提供了一种优雅的方式来搜索文档中具有某些匹配属性的标签,但当需要更复杂的搜索时,还需要使用到 Python 内置的 re
包。
from bs4 import BeautifulSoup
import requests
import re
url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
# 查找 class 以 "avant" 打头的所有 div 标签
for tag in soup.find_all("div", class_=re.compile("^avant")):
print(tag)
在 Python 中读取网站有很多方法,这里介绍了读取网页内容和解析 HTML 内容的方法。使用 requests
库能够轻松地发送基础请求,并发送参数和 Headers。而使用 Beautiful Soup
库能够轻松地解析出和筛选 HTML 标签。合理使用这些库,将有助于轻松快捷地获取所需信息。