python3抓取aqi
来源:互联网 发布:js获取选择文件的路径 编辑:程序博客网 时间:2024/06/08 03:09
从互联网抓取数据有时候也是企业的一个常见的需求,下边测试了从一个网站抓取的aqi信息
#!/usr/bin/env python# -*- coding: utf-8 -*-#import urllib2#from urllib import parse as urlparseimport urllib.requestimport threadingfrom time import ctimefrom bs4 import BeautifulSoupimport pymysqlimport sys# 打开数据库连接db = pymysql.connect(host="192.168.XX.XX", port=3306, user="test", passwd='123456', db="dbname", charset="utf8")def getPM25(cityname): site = 'http://www.pm25.com/' + cityname + '.html' html = urllib.request.urlopen(site) soup = BeautifulSoup(html,"html.parser") city = soup.find(class_ = 'bi_loaction_city') # 城市名称 aqi = soup.find("a",{"class","bi_aqiarea_num"}) # AQI指数 #aqi=str(aqi) quality = soup.select(".bi_aqiarea_right span") # 空气质量等级 result = soup.find("div",class_ ='bi_aqiarea_bottom') # 空气质量描述 print(city.text + u'AQI指数:' + aqi.text + u'\n空气质量:' + quality[0].text + result.text) print('*'*20 + ctime() + '*'*20) # 使用cursor()方法获取游标对象 cursor = db.cursor() #sql = """insert into TABLE1(CITYNAME) # values('china')""" try: cursor.execute('insert into TABLE1(CITYNAME,AQI,TEXT1,TEXT2) values("%s","%d","%s","%s")'% (city.text, int(aqi.text),quality[0].text,result.text)) #cursor.execute('insert into TABLE1(CITYNAME) values("%s")' % (city)) #cursor.execute(sql) # 提交到数据库执行 db.commit() except Exception as e: # 如果发生错误 db.rollback() print(e) print('----------------------------------')def one_thread(): # 单线程 print('One_thread Start: ' + ctime() + '\n') getPM25('hefei') getPM25('shanghai')def two_thread(): # 多线程 print('Two_thread Start: ' + ctime() + '\n') threads = [] t1 = threading.Thread(target=getPM25,args=('hefei',)) threads.append(t1) t2 = threading.Thread(target=getPM25,args=('shanghai',)) threads.append(t2) for t in threads: # t.setDaemon(True) t.start()def one_thread_loop(): # 单线程 print('One_thread Start: ' + ctime() + '\n') city_list = ['beijing','shanghai','shenzhen','wuhan'] for city in city_list: getPM25(city)if __name__ == '__main__': #one_thread() #print('\n' * 2) #two_thread() one_thread_loop() db.close()结果:
One_thread Start: Fri Dec 8 16:44:52 2017北京AQI指数:53空气质量:良PM2.5浓度:21微克/立方米击败了全国 66% 的城市,目前城市排名 121 ********************Fri Dec 8 16:44:53 2017********************上海AQI指数:51空气质量:良PM2.5浓度:26微克/立方米击败了全国 69% 的城市,目前城市排名 112 ********************Fri Dec 8 16:44:53 2017********************深圳AQI指数:62空气质量:良PM2.5浓度:43微克/立方米击败了全国 36% 的城市,目前城市排名 232 ********************Fri Dec 8 16:44:54 2017********************武汉AQI指数:64空气质量:良PM2.5浓度:45微克/立方米击败了全国 31% 的城市,目前城市排名 249 ********************Fri Dec 8 16:44:55 2017********************Process finished with exit code 0
阅读全文
0 0
- python3抓取aqi
- python3抓取代理服务器ip
- Python3抓取页面图片
- Python3抓取糗事百科
- Python3.X 抓取网络资源
- Python3抓取网页图片
- Python3网页抓取urllib
- python3抓取百度图片
- Python3.0 如何抓取网页
- 用python3抓取中文网页
- Python3 抓取网页中的图片
- Python3 抓取网页中的图片
- Python3.4 简单抓取爬虫
- Python3抓取煎蛋妹子图
- Python3.4.4抓取网页图片
- Python3:抓取网页HTML代码
- python3.x 抓取网页资源
- python3爬虫--抓取网页信息
- java写一个会导致死锁的程序
- Mac OS X下Maven的安装与配置
- C语言实现单链表面试题-------进阶篇
- Scala--占位符
- Teamviewer提示我,试用期到期,但是卸载、appdata文件夹删除、注册表删掉之后,再重新打开解压版的Teamviewer,还是提示试用期到期,怎么破?
- python3抓取aqi
- Android事件分发机制
- java给文件内容添加头
- Android 解决WebView重定向
- java中&与&&的区别
- docker之仓库管理
- DEX加密效果分析
- Visual Studio 2012更换皮肤和背景图的方法
- gprof2dot分析代码