欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于Python實現一鍵批量查詢郵編

 更新時間:2023年08月02日 10:38:59   作者:上景  
這篇文章主要為大家詳細介紹了如何利用Python快速實現查詢excel表格里所有郵編對應的地址信息,將輸出的省市縣信息分開放在不同的單元格中,感興趣的可以了解下

第 1 節(jié):導入庫

本節(jié)導入所需的 Python 庫:

  • pandas:用于數據操作和使用 Excel 文件。
  • requests:用于向網站發(fā)出 HTTP GET 請求。
  • bs4(BeautifulSoup):用于解析 HTML 內容。
  • tqdm:用于在處理郵政編碼期間顯示進度條。
import pandas as pd
import requests
from bs4 import BeautifulSoup
from tqdm import tqdm  #列中不能有空值

第 2 節(jié):從網頁中提取元素的函數

本節(jié)定義了extract_elements以 apostal_code作為輸入的函數。它使用提供的郵政編碼向網站“ https://www.youbianku.com/ ”發(fā)送 HTTP GET 請求。然后,它使用 BeautifulSoup 解析 HTML 內容,并使用 CSS 選擇器從網頁中提取特定元素。如果找到所有必需的元素,則提取并返回它們的文本值;否則,返回 None。

def extract_elements(postal_code):
    url = f"https://www.youbianku.com/{postal_code}"
    response = requests.get(url)
    soup = BeautifulSoup(response.content, "html.parser")
    element_1 = soup.select_one("#mw-content-text > div.mw-parser-output > div:nth-child(2) > div > span:nth-child(2) > a > span")
    element_2 = soup.select_one("#mw-content-text > div.mw-parser-output > div:nth-child(2) > div > span:nth-child(3) > a > span")
    element_3 = soup.select_one("#mw-content-text > div.mw-parser-output > div:nth-child(2) > div > span:nth-child(4) > a > span")
    if element_1 and element_2 and element_3:
        text_1 = element_1.text
        text_2 = element_2.text
        text_3 = element_3.text.replace(f"{text_1}{text_2}", "")
        return text_1, text_2, text_3
    else:
        return None

第 3 節(jié):輸入和輸出文件路徑

在本節(jié)中,指定輸入和輸出文件路徑。input_file保存輸入 Excel 文件的路徑,同時output_file保存將創(chuàng)建的輸出 Excel 文件的路徑。該程序還使用讀取輸入 Excel 文件pd.read_excel()并將“POST”列中的值檢索到postal_codes列表中。

# 讀取Excel文件
input_file = r"C:\Users\aa\Desktop\POST.xlsx"
output_file = r"C:\Users\aa\Desktop\P.xlsx"
df = pd.read_excel(input_file)
# 獲取列名稱為 "POST" 的數據
postal_codes = df["POST"].tolist()

第 4 節(jié):處理郵政編碼和存儲結果

此部分處理列表中的每個郵政編碼postal_codes。它調用該extract_elements函數從網站中檢索每個郵政編碼的元素。如果找到元素,它們將與郵政編碼一起存儲在字典中并附加到列表中results。如果未找到元素,則存儲空字符串。顯示進度條tqdm以指示處理進度。最后,results列表被轉換為 pandas DataFrame output_df。

# 處理郵政編碼并將結果存儲在新的DataFrame中
results = []
with tqdm(total=len(postal_codes), desc="Processing") as pbar:
    for postal_code in postal_codes:
        elements = extract_elements(str(postal_code))
        if elements:
            element_1, element_2, element_3 = elements
            results.append({"Postal Code": postal_code, "Element 1": element_1, "Element 2": element_2, "Element 3": element_3})
        else:
            results.append({"Postal Code": postal_code, "Element 1": "", "Element 2": "", "Element 3": ""})
        pbar.update(1)
output_df = pd.DataFrame(results)

第 5 節(jié):將結果保存到輸出文件

在本節(jié)中,DataFrame將保存到使用output_df指定的輸出 Excel 文件中。該參數確保行索引不包含在輸出中,打印消息“查詢完畢”(查詢完成),表明程序已經執(zhí)行完畢。

# 將結果保存到新的Excel文件中
output_df.to_excel(output_file, index=False)
# 輸出查詢完畢字樣
print("查詢完畢")

第 6 節(jié):代碼總結

1.從網頁中提取特定元素:代碼使用requests庫發(fā)送HTTP GET請求,通過BeautifulSoup庫解析TML內容,并使用CSS選擇器從網頁中提取特定元素。這些元素可能包含在給定的郵政編碼對應的網頁中。如果成功到提取所有所需元素后,則將它們的值存儲起來,以供后續(xù)處理。

2.處理郵政編碼數據:代碼讀取輸入的Excel文件,獲取包含郵政編碼的列數據。然后,對每個郵政編碼進行處理,調用提取元素的函數,把提取到的元素及對應的郵政編碼存儲中結果列表中。如果某個郵政編碼無法提取到所需元素,則將空字符串存儲占位符。整個處理過程中,通過使用庫顯示細節(jié)條,提供處理細節(jié)的可視化tqdm。

3.將結果保存到Excel文件:將處理得到的結果列表轉換為pandasDataFrame,然后將其保存到指定的輸出Excel文件中。最終,代碼打印出“查詢完畢”的提示信息,表示程序執(zhí)行完畢。

第 7 節(jié):代碼運行實例

輸入文件:

輸出文件(省市縣是分開輸出的):

完整程序

import pandas as pd
import requests
from bs4 import BeautifulSoup
from tqdm import tqdm  #列中不能有空值
def extract_elements(postal_code):
    url = f"https://www.youbianku.com/{postal_code}"
    response = requests.get(url)
    soup = BeautifulSoup(response.content, "html.parser")
    element_1 = soup.select_one("#mw-content-text > div.mw-parser-output > div:nth-child(2) > div > span:nth-child(2) > a > span")
    element_2 = soup.select_one("#mw-content-text > div.mw-parser-output > div:nth-child(2) > div > span:nth-child(3) > a > span")
    element_3 = soup.select_one("#mw-content-text > div.mw-parser-output > div:nth-child(2) > div > span:nth-child(4) > a > span")
    if element_1 and element_2 and element_3:
        text_1 = element_1.text
        text_2 = element_2.text
        text_3 = element_3.text.replace(f"{text_1}{text_2}", "")
        return text_1, text_2, text_3
    else:
        return None
# 讀取Excel文件
input_file = r"C:\Users\aa\Desktop\POST.xlsx"
output_file = r"C:\Users\aa\Desktop\P.xlsx"
df = pd.read_excel(input_file)
# 獲取列名稱為 "POST" 的數據
postal_codes = df["POST"].tolist()
# 處理郵政編碼并將結果存儲在新的DataFrame中
results = []
with tqdm(total=len(postal_codes), desc="Processing") as pbar:
    for postal_code in postal_codes:
        elements = extract_elements(str(postal_code))
        if elements:
            element_1, element_2, element_3 = elements
            results.append({"Postal Code": postal_code, "Element 1": element_1, "Element 2": element_2, "Element 3": element_3})
        else:
            results.append({"Postal Code": postal_code, "Element 1": "", "Element 2": "", "Element 3": ""})
        pbar.update(1)
output_df = pd.DataFrame(results)
# 將結果保存到新的Excel文件中
output_df.to_excel(output_file, index=False)
# 輸出查詢完畢字樣
print("查詢完畢")

到此這篇關于基于Python實現一鍵批量查詢郵編的文章就介紹到這了,更多相關Python查詢郵編內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python遠程調用rpc模塊xmlrpclib的方法

    python遠程調用rpc模塊xmlrpclib的方法

    今天小編就為大家分享一篇python遠程調用rpc模塊xmlrpclib的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python網絡爬蟲實例講解

    Python網絡爬蟲實例講解

    這篇文章主要為大家詳細介紹了Python網絡爬蟲實例,爬蟲的定義、主要框架等基礎概念,感興趣的小伙伴們可以參考一下
    2016-04-04
  • python開發(fā)實時可視化儀表盤的示例

    python開發(fā)實時可視化儀表盤的示例

    這篇文章主要介紹了python開發(fā)實時可視化儀表盤的示例,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下
    2021-05-05
  • 使用python-Jenkins批量創(chuàng)建及修改jobs操作

    使用python-Jenkins批量創(chuàng)建及修改jobs操作

    這篇文章主要介紹了使用python-Jenkins批量創(chuàng)建及修改jobs操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • python遠程登錄代碼

    python遠程登錄代碼

    因為 python 已內建了一個 pop3 的函式庫,所以我們直接用它來完成郵件的下載和處理。事實上, 如果我們不用 poplib 的話,我們還是可以完成那個例子中的所有作業(yè):就是通過模擬 telnet的協(xié)定。
    2008-04-04
  • Python字符串格式化的方法(兩種)

    Python字符串格式化的方法(兩種)

    這篇文章主要介紹了Python字符串格式化的方法(兩種) ,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • educoder之Python數值計算庫Numpy圖像處理詳解

    educoder之Python數值計算庫Numpy圖像處理詳解

    這篇文章主要為大家介紹了educoder之Python數值計算庫Numpy圖像處理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • python中不能連接超時的問題及解決方法

    python中不能連接超時的問題及解決方法

    這篇文章主要介紹了python中不能連接超時的問題及解決方法,需要的朋友可以參考下
    2018-06-06
  • 在Django的視圖中使用數據庫查詢的方法

    在Django的視圖中使用數據庫查詢的方法

    這篇文章主要介紹了在Django的視圖中使用數據庫查詢的方法,是Python的Django框架使用的基礎操作,需要的朋友可以參考下
    2015-07-07
  • python如何實現MK突變檢驗方法,代碼復制修改可用

    python如何實現MK突變檢驗方法,代碼復制修改可用

    這篇文章主要介紹了python如何實現MK突變檢驗方法,代碼復制修改可用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05

最新評論