python實現爬蟲檢視冠狀病毒肺炎疫情

2021-10-02 16:26:00 字數 2972 閱讀 2047

我們將通過下面這些**得到我們想要的疫情資料。同時我們使用pyecharts庫,為河南省內所有資料繪製了乙份疫情地圖。

值得注意的是:這個**其中的一部分內容是使用js非同步載入出的,因此我們並不能直接找到上面中那些資料的直接xpath,因為很容易發現,從直接xpath載入出的資料為空。

若要直接從xpath中拿到資料,需要使用python的webdriver庫模擬人開啟瀏覽器進行互動,從而得到我們想要的資料。

在這裡我們使用的不是上面的方法,而是在原始網頁中找到了儲存這些資料的位置。

import requests

from lxml import html

import re

import json

import time

from pyecharts import options as opts

from pyecharts.charts import map

from pyecharts.

globals

import charttype, symboltype

defgeo_henan

(city_list, num_list)

-> map():

c =( map(

).add(

"圖例",[

list

(z)for z in

zip(city_list, num_list)],

"河南"

).set_series_opts(label_opts=opts.labelopts(is_show=

false))

.set_global_opts(

title_opts=opts.titleopts(title=

"河南疫情地圖"),

visualmap_opts=opts.visualmapopts(max_=

200, is_piecewise=

false))

)return c

url =

''res = requests.get(url)

res.encoding =

'utf-8'

# f = open('../疫情.html', 'w+', encoding='utf-8')

# f.write(res.text)

pattern = re.

compile

(r'"confirmedcount":.+"virus"'

)pattern_henan = re.

compile

(r'"河南".+?"comment"'

)pattern_henan_inner = re.

compile

(r''

data = json.loads(data)

print

(time.strftime(

'%y%m%d %h:%m').

format

(a='現在是'

, y=

'年', m=

'月', d=

'日')

)print

(f"確診人數:"

)print

(f"疑似人數:"

)print

(f"死亡人數:"

)print

(f"重症人數:"

)print

(f"**人數:"

)pos =

'//*[@id="getlistbycountrytypeservice1"]/text()'

data =

str(tree.xpath(pos)

)data = re.findall(pattern_henan, data)

data = data[0]

data =

''data = json.loads(data)

print

('-'*40

)print

(f"河南省確診人數:"

)print

(f"河南省死亡人數:"

)print

(f"河南省**人數:"

)pos =

'//*[@id="getareastat"]/text()'

data =

str(tree.xpath(pos)

)data = re.findall(pattern_henan_inner, data)

data = data[0]

data = data[:-

20]data_list = data.split(

'},'

)city_list =

num_list =

for i in

range

(len

(data_list)):

data_list[i]

= data_list[i][1

:]data_list[i]=''

data_list[i]

= json.loads(data_list[i]

) data_list[i]

['cityname'

]= data_list[i]

['cityname']+

'市'[

'cityname'])

['confirmedcount'])

geo_henan(city_list, num_list)

.render(

'../河南疫情地圖.html'

python通過爬蟲獲得全國新冠狀病情情況

疫情期間寫個乙個爬蟲 爬的是全國各省的疫情狀況。然後將情況繪成 條形圖等。所包含的庫有 from selenium import webdriver 爬蟲模擬操作 import requests as res import pandas as pd import numpy as np import...

python爬蟲基礎實現 Python實現基礎爬蟲

初次使用urllib實現爬蟲的資料請求 urllib.request.urlopen url 發起get請求 urllib.parse.quote 將中文進行url編碼 from urllib.request importurlopen,urlretrieve,requestfrom urllib....

python實現簡單爬蟲 Python實現簡單爬蟲

簡介 爬蟲架構 1 url管理器 3 網頁分析器 4 爬蟲呼叫器 5 價值資料使用 爬蟲實現 1 排程器實現 coding utf 8 import url manager import html import html parser import html outputer import url ...