📅  最后修改于: 2023-12-03 14:52:48.647000             🧑  作者: Mango
在Python中,我们可以使用第三方库BeautifulSoup来解析HTML,从而从Google中提取天气数据。
在终端或命令行界面中输入以下命令安装BeautifulSoup库:
pip install beautifulsoup4
通过Python的requests库,我们可以获取Google天气页面的HTML代码:
import requests
url = 'https://www.google.com/search?q=weather'
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36'}
response = requests.get(url, headers=headers)
html = response.content.decode('utf-8')
这里,我们先定义了一个URL,即Google天气的查询URL。然后设置了一个怕头,模拟浏览器访问。接着使用requests库发送了一个GET请求,并获取到了响应的HTML代码。最后将其解码为utf-8编码的字符串。
使用BeautifulSoup库解析HTML代码,并提取相关信息:
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'html.parser')
weather = soup.find('div', attrs={'class': 'BNeawe iBp4i AP7Wnd'}).get_text()
loc = soup.find('div', attrs={'class': 'BNeawe s3v9rd AP7Wnd'}).get_text()
time = soup.find('div', attrs={'class': 'BNeawe s3v9rd AP7Wnd'}).find_next_sibling().get_text()
print(loc)
print(time)
print(weather)
这里,我们使用find方法从HTML代码中提取相关信息。其中,天气信息位于class为“BNeawe iBp4i AP7Wnd”的div标签内,地理位置位于class为“BNeawe s3v9rd AP7Wnd”的div标签内,时间信息则是该标签的下一个标签。最后,我们将提取到的信息打印出来。
import requests
from bs4 import BeautifulSoup
url = 'https://www.google.com/search?q=weather'
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36'}
response = requests.get(url, headers=headers)
html = response.content.decode('utf-8')
soup = BeautifulSoup(html, 'html.parser')
weather = soup.find('div', attrs={'class': 'BNeawe iBp4i AP7Wnd'}).get_text()
loc = soup.find('div', attrs={'class': 'BNeawe s3v9rd AP7Wnd'}).get_text()
time = soup.find('div', attrs={'class': 'BNeawe s3v9rd AP7Wnd'}).find_next_sibling().get_text()
print(loc)
print(time)
print(weather)
输出结果为:
New York, NY
Friday 2:00 PM
Mostly sunny
至此,我们已经学会了如何在Python中从Google中提取天气数据。