一、Python爬取世界疫情的實時數據
1、表結構(MySQL)
2、代碼部分(數據:丁香醫生)

import requests from bs4 import BeautifulSoup import json import time from pymysql import * def mes(): url = 'https://ncov.dxy.cn/ncovh5/view/pneumonia?from=timeline&isappinstalled=0' #請求地址 headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36 SLBrowser/6.0.1.6181'}#創建頭部信息 resp = requests.get(url,headers = headers) #發送網絡請求 content=resp.content.decode('utf-8') soup = BeautifulSoup(content, 'html.parser') listA = soup.find_all(name='script',attrs={"id":"getListByCountryTypeService2true"}) account =str(listA) mes = account.replace('[<script id="getListByCountryTypeService2true">try { window.getListByCountryTypeService2true = ', '') mes=mes.replace('}catch(e){}</script>]','') #mes=account[95:-21] messages_json = json.loads(mes) times=time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) worldList=[] for item in messages_json: continents=item['continents'] provinceName=item['provinceName'] confirmedCount=item['confirmedCount'] currentConfirmedCount=item['currentConfirmedCount'] curedCount = item['curedCount'] deadCount=item['deadCount'] worldList.append((times,continents,provinceName,confirmedCount,currentConfirmedCount,curedCount,deadCount)) insert(worldList) def insert(worldList): worldTuple=tuple(worldList) cursor = db.cursor() sql = "insert into world values (0,%s,%s,%s,%s,%s,%s,%s) " try: cursor.executemany(sql,worldTuple) print("插入成功") db.commit() except Exception as e: print(e) db.rollback() cursor.close() # 連接數據庫的方法 def connectDB(): try: db = connect(host='localhost', port=3306, user='root', password='123456', db='yiqing',charset='utf8') print("數據庫連接成功") return db except Exception as e: print(e) return NULL if __name__ == '__main__': db=connectDB() mes()
3、結果