你是否曾经希望可以轻松地从网页上获取表格数据,而不是手动复制粘贴?好消息来了,使用Python和BeautifulSoup,你可以轻松实现这一目标。今天,我们将探索如何使用这些工具抓取中国气象局网站(http://weather.cma.cn)上的天气数据,分析各地的天气情况。让我们开始这段有趣的旅程吧!
数据驱动的决策正在各个领域发挥重要作用。天气数据尤其重要,从农业到航空,都需要准确的天气预报。然而,许多有用的数据仅以表格形式展示在网页上,没有提供便捷的下载选项。这时,网络爬虫技术派上了用场。
我们需要从中国气象局网站上抓取各地的天气情况表格。如何高效且安全地获取这些数据?使用代理IP是解决这一问题的有效方法。通过代理服务器,我们可以提高采集效率。
我们将使用Python的requests库发送HTTP请求,并通过代理IP技术规避反爬虫机制。然后,使用BeautifulSoup解析HTML内容,并提取我们需要的表格数据。
pip install requests beautifulsoup4
以下是实现上述步骤的详细代码:
import requests
from bs4 import BeautifulSoup
# 设置代理服务器 爬虫代理加强版
proxy = {
"http": "http://username:password@host.Python.cn:1234",
"https": "http://username:password@host.Python.cn:1234"
}
# 请求头设置
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
}
# 目标URL
url = "http://weather.cma.cn"
# 发送HTTP请求
response = requests.get(url, headers=headers, proxies=proxy)
# 检查响应状态
if response.status_code == 200:
print("成功获取网页内容")
else:
print(f"获取网页失败,状态码:{response.status_code}")
# 使用BeautifulSoup解析HTML内容
soup = BeautifulSoup(response.content, 'html.parser')
# 查找表格
table = soup.find('table')
# 提取表格数据
data = []
if table:
rows = table.find_all('tr')
for row in rows:
cols = row.find_all('td')
cols = [col.text.strip() for col in cols]
data.append(cols)
# 打印提取的数据
for row in data:
print(row)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。