python爬蟲例項 獲取國外疫情資訊

2021-10-22 18:55:43 字數 3367 閱讀 6669

首先開啟這個**在此選擇乙個國家,例如美國

f12開啟瀏覽器的開發者工具,重新整理一下,找到network,並選中xhr。之後選中list?country那一行

選擇header中檢視資料項具體資訊

http請求為post請求,引數為contry,對應的url為

使用urllib解析url

# 解析url

from urllib import parse # urllib為python中用於處理http請求,parse子模組用於處理url

# 使用unquote方法解析url

url=

""parse.unquote(url)

url最後類似於亂碼形式的字串為國家名轉碼以後的文字。如果需要獲取其他國家的資料,只需要將url變為:

國家名稱&即可,在拼接時無法使用中文,可以使用quote進行轉碼

舉例使用:

# 使用quote方式轉碼

url=

"%s&"

country=

input

("請輸入查詢國家"

)print

(url%

(parse.quote(country)

))

使用requests模組模擬瀏覽器獲取資料。

requests模組是python中的http請求庫,使用簡單且功能強大。需要進行安裝,可以使用pip install requests來安裝

模擬使用者在瀏覽器敲回車傳送請求。瀏覽器在傳送請求時會攜帶一些資訊,為了達到模擬瀏覽器的目的,爬蟲也需要加入這些資訊進行偽裝,可以直接將瀏覽器中對應資訊直接貼上過來。"referer"、"host"、"origin"、"user-agent"為常用字段,根據瀏覽器中header中的這幾項對應的值把他們貼上過來。

import requests

url=

"%s&"

headers=

requests.post(url,[data,][headers,][proxies,]*args):使用post方式向目標傳送請求

-url:伺服器對應位址

-data:請求時攜帶的資料

-headers:http請求中headers欄位

-proxies:設定**ip位址

以上為post請求,若為get請求應改為requests.get(url,[data,][headers,][proxies,]*args)

定義get_response函式

def

get_response

(country)

: url=url%

(parse.quote(country)

) data=

response=requests.post(url,data=data,headers=headers)

# 傳送請求:攜帶拼接好的url、引數data和headers

return response

檢視獲取的內容

# 檢視獲取的內容

country=

input

("請輸入查詢國家:"

)res=get_response(country)

# 此時返回的是響應的物件

print

(res.text)

# response.text 檢視響應中的文字資訊

# 將資料寫入本地

with

open

("yiqing.xls"

,"a"

)as f:

f.write(res.text)

雖然已經獲取資料,但是資料本身並不直觀,需要進行處理。通過前面的觀察可以發現,資料時字串形式的字典(json), 我們將其轉化為字典,然後使用pandas進行處理,最後儲存至excel檔案中。

data=res.text

data=

eval

(data)

# 轉為字典

# 資料中只有data對應的鍵值對為資料

data=data[

"data"

]print

(data)

匯入pandas ,需要進行安裝

# 匯入pandas ,需要進行安裝

import pandas as pd # 使用as給包起別名

df=pd.dataframe(data)

# dataframe為pandas中的乙個資料結構,類似於二維**

df

此時的資料比較明了,但是資料中有一項多餘:confirm_add,即新增病例

新增病例我們可以根據當前病例數減去昨日病例進行計算,所以此處可進行刪除。

# dataframe中的drop方法可以通過指定標籤名稱和相應的軸,或直接指定索引或列名稱來刪除行或列。通過axis來指定

df=df.drop(

["confirm_add"

],axis=1)

df

儲存資料,寫入本地excel檔案中

# 儲存資料,寫入本地excel檔案中

# python操作excel檔案需要安裝環境依賴xlwt、xlrd工具包

df.to_excel(

"yiqing.xls"

,index=

false

)# to_csv可以寫入到csv檔案中

讀取檔案,檢視寫入資料

# 讀取檔案,檢視寫入資料

df=pd.read_excel(

"yiqing.xls"

,index_col=

none

)df

Python爬蟲例項

中國大學排名專案 功能描述 輸出 大學排名資訊的螢幕輸出 排名,大學名稱,總分 技術路線 requests bs4 定向爬蟲 僅對輸入url進行爬取,不擴充套件爬取 程式的結構設計 步驟1 從網路上獲取大學排名網頁內容 步驟2 提取網頁內容中資訊到合適的資料結構 二維列表 步驟3 利用資料結構展示並...

python 爬蟲例項

coding utf 8 import re import sys import os from time import sleep from bs4 import beautifulsoup import requests reload sys sys.setdefaultencoding utf...

Python 爬蟲例項

下面是我寫的乙個簡單爬蟲例項 1.定義函式讀取html網頁的源 2.從源 通過正規表示式挑選出自己需要獲取的內容 3.序列中的htm依次寫到d盤 usr bin python import re import urllib.request 定義函式讀取html網頁的源 def gethtml url...