# -*- coding:utf-8 -*- from bs4 import BeautifulSoup import requests from itertools import izip def get_message(): #将网页编码换成utf-8形式,统一编码 url = 'http://www.weather.com.cn/weather/101210201.shtml#' wb = requests.get(url) wb.encoding = 'utf-8' soup = BeautifulSoup(wb.text, 'lxml') dates = soup.select('ul.t > li > h1') lowest_temps = soup.select('ul.t > li > p[class="tem"] > i') highest_temps = soup.select('ul.t > li > p[class="tem"] > span') rains = soup.select('ul.t > li > p[class="wea"]') clouds = soup.select('ul.t > li > p[class="win"] > i') for date, lowest_temp, highest_temp, rain, cloud in izip(dates, lowest_temps, highest_temps, rains, clouds): print date.get_text(), lowest_temp.get_text(), str(highest_temp.get_text())+'℃', rain.get_text(), cloud.get_text() if __name__ == "__main__": get_message()