zoukankan      html  css  js  c++  java
  • Python爬取世界疫情的实时数据

    一、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()
    world.py

    3、结果

  • 相关阅读:
    “非工作总结”之快门—我的镜头见过你
    书摘:日本式管理和依靠自己
    寒冬日,找阳光
    模式自由(Schemafree)和数据存储的非格式化趋势
    心体澄澈,意气和平
    思考些管理的事情
    含沙射影,业镜照胆
    临崖之马,上滩之舟—凡事一定要区别不同情况对待
    [转]HttpContext.Current.Cache 和 HttpRuntime.Cache
    句柄、引用、指针与对象(转)
  • 原文地址:https://www.cnblogs.com/MoooJL/p/12640911.html
Copyright © 2011-2022 走看看