十七. API實戰(zhàn) - 爬取糗事百科網的用戶地址信息

爬取思路:先確定幾大模塊帅掘,get_url(url)獲取用戶的詳細頁面棺榔,get_address(url)在用戶的詳細頁面中爬取地址信息鲫售,例如:廣東、四川等掏击,get_geo(address)通過調用API來獲取各省份對應的經度耳胎、緯度顾犹,最后將獲取的地址、經度绿贞、緯度信息保存到CSV文件中因块。

代碼:

import requests
from lxml import etree
import json
import csv
import time

def get_url(url):
    r = requests.get(url,headers = headers)
    print(r.status_code)
    html = etree.HTML(r.text)
    url_infos = html.xpath('//div[@class="author clearfix"]')
    user_link_list = []
    for url_info in url_infos:
        user_part_link = url_info.xpath('a[1]/@href')
        if len(user_part_link) != 0:
            user_part_link = user_part_link[0]
            user_link = "https://www.qiushibaike.com" + user_part_link
            user_link_list.append(user_link)      
        else:
            pass
    return user_link_list  

def get_address(url):
    r = requests.get(user_link,headers = headers)
    print(r.status_code)
    html = etree.HTML(r.text)
    if html.xpath('//div[2]/div[3]/div[2]/ul/li[4]/text()'):
        address = html.xpath('//div[2]/div[3]/div[2]/ul/li[4]/text()')[0].split(' · ')[0]
        get_geo(address)
    else:
        pass

def get_geo(address):
    par = {'address': address, 'key': 'cb649a25c1f81c1451adbeca73623251'}
    url = 'http://restapi.amap.com/v3/geocode/geo'
    r = requests.get(url, par)

    json_data = json.loads(r.text)
    try:
        geo = json_data['geocodes'][0]['location']
        longtitude = geo.split(',')[0]   #經度
        latitude = geo.split(',')[1]     #緯度
        writer.writerow((address,longtitude,latitude))
        #print(address,longtitude,latitude)
    except IndexError:
        pass
    

if __name__=="__main__":
    f = open('F://map.csv','w',newline='')
    writer = csv.writer(f)
    writer.writerow(('地址','經度','緯度'))
    
    headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3294.6 Safari/537.36'}
    url_list = ["https://www.qiushibaike.com/text/page/{}/".format(i) for i in range(1,14)]    
    for url in url_list:
        user_link_list = get_url(url)
        for user_link in user_link_list:
            address = get_address(user_link)
            
    f.close()

結果:


image.png

然后利用excel的插入→數(shù)據(jù)透視表功能整理數(shù)據(jù),最終變成:


image.png

然后利用BDP個人版中新建工作表→上傳數(shù)據(jù)→新建圖表(選擇地圖圖表)→選擇顏色和尺寸等籍铁。
最后的效果如下(不同顏色代表不同省份涡上,形狀越大的用戶分布越多):


image.png

當然,也可以方便地做出常規(guī)圖表:


image.png

具體可以查看以下鏈接:https://me.bdp.cn/api/su/5YWKREVA

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末拒名,一起剝皮案震驚了整個濱河市吩愧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌增显,老刑警劉巖雁佳,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異同云,居然都是意外死亡糖权,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門炸站,熙熙樓的掌柜王于貴愁眉苦臉地迎上來星澳,“玉大人,你說我怎么就攤上這事旱易∧寂校” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵咒唆,是天一觀的道長届垫。 經常有香客問我,道長全释,這世上最難降的妖魔是什么装处? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮浸船,結果婚禮上妄迁,老公的妹妹穿的比我還像新娘。我一直安慰自己李命,他們只是感情好登淘,可當我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著封字,像睡著了一般黔州。 火紅的嫁衣襯著肌膚如雪耍鬓。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天流妻,我揣著相機與錄音牲蜀,去河邊找鬼。 笑死绅这,一個胖子當著我的面吹牛涣达,可吹牛的內容都是我干的。 我是一名探鬼主播证薇,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼度苔,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了浑度?” 一聲冷哼從身側響起林螃,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎俺泣,沒想到半個月后疗认,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡伏钠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年横漏,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片熟掂。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡缎浇,死狀恐怖,靈堂內的尸體忽然破棺而出赴肚,到底是詐尸還是另有隱情素跺,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布誉券,位于F島的核電站指厌,受9級特大地震影響,放射性物質發(fā)生泄漏踊跟。R本人自食惡果不足惜踩验,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望商玫。 院中可真熱鬧箕憾,春花似錦、人聲如沸拳昌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽炬藤。三九已至御铃,卻和暖如春碴里,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背畅买。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工并闲, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留细睡,地道東北人谷羞。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像溜徙,于是被迫代替她去往敵國和親湃缎。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,435評論 2 359

推薦閱讀更多精彩內容