本文共 2601 字,大约阅读时间需要 8 分钟。
基于requests库制作的爬虫。
使用方法:打开终端输入 “python3 weather.py 北京(或你所在的城市)"
程序正常运行需要在同文件夹下加入一个“data.csv”文件,内容请参考链接:
运行效果:
源码:
'''想要学习Python?Python学习交流群:973783996满足你的需求,资料都已经上传群文件,可以自行下载!'''import sysimport reimport requestsimport webbrowserfrom PIL import Imagefrom requests.exceptions import RequestExceptionimport csvdata={}with open("data.csv",'r') as f: rawinfos=list(csv.reader(f)) for i in rawinfos: data[i[0]]=i[1]def get_one_page(url,headers): try: response=requests.get(url,headers=headers) if response.status_code==200: response.encoding='utf-8' return response.text return None except RequestException: return Noneheaders={'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/604.4.7 (KHTML, like Gecko) Version/11.0.2 Safari/604.4.7'}try: address=data[sys.argv[1]]except: sys.exit("\033[31m无该城市!\033[0m")html=get_one_page('http://www.weather.com.cn/weather1d/'+address+'.shtml',headers)if not html: print("城市代码有误!") exit(1)ADDRESS=re.findall('(.*?) ',html)aim=re.findall('\n\n(.*?)\n(.*?)\n(.*?)
\n',html,re.S)print(ADDRESS[0][1:5])print("当前日期:%s月%s日,%s"%(aim[0][0],aim[0][1],aim[0][4]))print("更新时间:%s:00"%aim[0][2])print("当前天气:%s"%aim[0][5])print("今日温度:%s"%aim[0][6])print("空气质量:"+airdata[0][0]+","+airdata[0][2])ask_ok=input("是否深入查看(Y/N):")if ask_ok=='Y' or ask_ok=='y': lightdata=re.findall('
(.*?)
\n(.*?)
',html,re.S) weardata=re.findall('(.*?)
',html,re.S) washdata=re.findall('(.*?)
\n(.*?)
\n
转载地址:http://einmf.baihongyu.com/