1. 程式人生 > >requests二次爬取全國郵編

requests二次爬取全國郵編

全國郵編的網址:http://www.ip138.com/post/
我們這次是爬取 每一個省裡面的所有郵編資訊
這裡要進行二次爬取,才能完全獲取完資料.

import requests,re

#代理ip
proxy={
    "HTTP": "113.3.152.88:8118",
    "HTTPS": "219.234.5.128:3128",
}
#偽裝頭資訊
headers={
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'
, } #根據正常跳轉獲取網址 分析網址,再進行拼接 # url="http://alexa.ip138.com/post/search.asp?page=503&regionid=2" url="http://www.ip138.com/post/" response=requests.get(url,headers=headers,proxies=proxy) #網址編碼為gbk 所以解碼為gbk不再是utf-8 html=response.content.decode('gb2312') #提取每個省的連線id碼 用於第二次拼接url 請求 rec=re.compile(r'<a href="/(.*?)/" target="_blank">(.*?)</a>'
) ret=rec.findall(html) for i in ret: print("地區:"+i[-1]+" "+"編號:"+i[0]) print() msg=input("請輸入要查詢地區的編號:") #拼接url url_yz="http://www.ip138.com/%s/"%msg response=requests.get(url_yz,headers=headers,proxies=proxy) html_place=response.content.decode('gbk') # print(html_place) # \u4e00-\u9fa5 # 正則中這個代表匹配所有中文字元
rec_place=re.compile(r'<td>([\u4e00-\u9fa5]*?)</td><td><a href="/.*?/">(.*?)</a></td><td><a href="/.*?/">(.*?)</a></td>') ret_place=rec_place.findall(html_place) for i in ret_place: print("市縣區名:"+i[0]+" 郵政編碼:"+i[1]+" 長途區號:"+i[-1])

這樣就可以完全把所有省市郵編都爬取完畢了