Python爬取天气数据的实例详解
在Python中,我们可以使用第三方库爬取天气数据。本文将详细介绍如何使用第三方库爬取天气数据,并提供两个示例。
使用第三方库爬取天气数据
我们可以使用第三方库爬取天气数据。常用的第三方库包括requests、beautifulsoup4、lxml等。下面是使用requests和beautifulsoup4爬取天气数据的示例:
import requests
from bs4 import BeautifulSoup
url = 'http://www.weather.com.cn/weather/101010100.shtml'
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.3'}
response = requests.get(url, headers=headers)
response.encoding = 'utf-8'
html = response.text
soup = BeautifulSoup(html, 'lxml')
weather = soup.select('.t .clearfix')[0]
city = weather.select('.crumbs a')[-1].text
temperature = weather.select('.tem span')[-1].text
weather_info = weather.select('.wea')[0].text
print('城市:', city)
print('温度:', temperature)
print('天气:', weather_info)
在上面的代码中,我们使用requests库发送HTTP请求,获取天气数据的HTML页面。然后,我们使用beautifulsoup4库解析HTML页面,提取城市、温度、天气等信息。
示例
下面是两个使用第三方库爬取天气数据的示例:
示例一:爬取北京市天气数据
我们可以使用第三方库爬取北京市天气数据。下面是一个爬取北京市天气数据的示例:
import requests
from bs4 import BeautifulSoup
url = 'http://www.weather.com.cn/weather/101010100.shtml'
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.3'}
response = requests.get(url, headers=headers)
response.encoding = 'utf-8'
html = response.text
soup = BeautifulSoup(html, 'lxml')
weather = soup.select('.t .clearfix')[0]
city = weather.select('.crumbs a')[-1].text
temperature = weather.select('.tem span')[-1].text
weather_info = weather.select('.wea')[0].text
print('城市:', city)
print('温度:', temperature)
print('天气:', weather_info)
在上面的代码中,我们使用requests库发送HTTP请求,获取北京市天气数据的HTML页面。然后,我们使用beautifulsoup4库解析HTML页面,提取城市、温度、天气等信息。
示例二:爬取上海市天气数据
我们可以使用第三方库爬取上海市天气数据。下面是一个爬取上海市天气数据的示例:
import requests
from bs4 import BeautifulSoup
url = 'http://www.weather.com.cn/weather/101020100.shtml'
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.3'}
response = requests.get(url, headers=headers)
response.encoding = 'utf-8'
html = response.text
soup = BeautifulSoup(html, 'lxml')
weather = soup.select('.t .clearfix')[0]
city = weather.select('.crumbs a')[-1].text
temperature = weather.select('.tem span')[-1].text
weather_info = weather.select('.wea')[0].text
print('城市:', city)
print('温度:', temperature)
print('天气:', weather_info)
在上面的代码中,我们使用requests库发送HTTP请求,获取上海市天气数据的HTML页面。然后,我们使用beautifulsoup4库解析HTML页面,提取城市、温度、天气等信息。
总结
使用第三方库爬取天气数据可以帮助我们获取实时的天气信息。在使用第三方库爬取天气数据时,需要注意网站的反爬虫机制,避免被封IP。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python爬取天气数据的实例详解 - Python技术站