Python crawls world epidemic information to Mysql

1. Table structure

 

Second, the specific code (python)

import json

import pymysql
import requests
from bs4 import BeautifulSoup
import datetime

url = ' https://ncov.dxy.cn/ncovh5/view/pneumonia?from=timeline&isappinstalled=0 '   # request address
headers = {
     ' user-agent ' : ' Mozilla / 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit / 537.36 (KHTML, like Gecko) Chrome / 74.0.3729.131 Safari / 537.36 ' } # Create header information
response = requests. get (url, headers = headers) # send network request
content = response.content.decode('utf-8')
soup = BeautifulSoup(content, 'html.parser')

# World confirmed getAreaStat
listB = soup.find_all(name='script', attrs={"id": "getListByCountryTypeService2true"})

world_messages = str(listB)[95:-21]

print(world_messages)
world_messages_json = json.loads(world_messages)
worldList = []
now_time = datetime.datetime.now().strftime('%Y-%m-%d')

for k in range(len(world_messages_json)):
    worldvalue = (now_time,
                  world_messages_json[k].get('countryType'), world_messages_json[k].get('continents'),
                  world_messages_json[k].get('provinceId'), world_messages_json[k].get('provinceName'),
                  world_messages_json[k].get('provinceShortName'), world_messages_json[k].get('cityName'),
                  world_messages_json[k].get('currentConfirmedCount'), world_messages_json[k].get('confirmedCount'),
                  world_messages_json[k].get('suspectedCount'), world_messages_json[k].get('curedCount'),
                  world_messages_json[k].get('deadCount'), world_messages_json[k].get('locationId'),
                  world_messages_json[k].get('countryShortCode'),)
    worldList.append(worldvalue)

db = pymysql.connect("localhost", "root", "0000", "yiqing", charset='utf8')
cursor = db.cursor()

sql_world = "INSERT INTO world_map values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"

worldTuple = tuple(worldList)
print(worldTuple)

try:
    cursor.executemany(sql_world, worldTuple)
    db.commit()
except:
    print ( ' Execution failed, enter callback 2 ' )
    db.rollback()

db.close()

 

Guess you like

Origin www.cnblogs.com/dd110343/p/12681609.html