擴展程序選項將JSONV" />

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

python爬蟲實例二:地圖上的火鍋美味

系統 1685 0

申明:本文出自我自己的微信號python1024,屬于個人原創。
先看下代碼目錄結構:
python爬蟲實例二:地圖上的火鍋美味_第1張圖片
有三個.py文件,map_craw.py、stat.py、store.py分別的功能是爬取數據、數據分析、將爬取的數據存儲入mysql數據庫中,由于stat.py還沒寫完,這篇文章主要講數據的爬取與存儲。
這里的地圖就是baidu map,如果是沒有爬蟲基礎的同學先到CSDN里面搜一下,安裝個Chrome瀏覽器,順便在瀏覽器的右上角更多中找到更多工具—>擴展程序選項將JSONView擴展程序安裝一下。
要想爬取數據首先要分析網站中你想要的數據在那里,有的可能直接就在前端接口頁面中獲取到,有的可能需要請求后端的接口。如果請求的是前端頁面的接口,請求完以后需要對前端頁面進行解析、提取拿到你想要的信息。常用的頁面解析python包有xml、beautiful(bs4)等,提取的方式包括xpath定位、select選擇器、CSS選擇器等。通常在解析包里可以調用接口函數實現這幾種提取方式。如果是請求后端接口的話,搞懂請求類型是get、post的哪一種(很簡單在headers里查看一下Request Method即可),然后分析url的Query String Parameters參數。找到規律后,查看Reponse返回的類型。如果是html頁面,那就和前端一樣的方法去解析提取,如果返回的是JSON數據格式,你需要解析JSON數據得到你想要的信息(超級簡單啊)。

我們這次爬取的信息就從搜索關鍵詞火鍋后所有城市的火鍋店的信息。包括名稱、地址、人均消費、電話、評論條數、全部評價分數等。

python爬蟲實例二:地圖上的火鍋美味_第2張圖片

這次map的數據返回格式就是JSON。在Chrome瀏覽器中,右鍵點擊檢查Inspect,找到Network并點擊,然后選擇XHR選項。刷新一下抓取到一些數據包。首先找到哪些包返回的reponse包含你所需要的信息,然后查看這些包的Request請求中url的Query String Parameters參數的規律,找到這些規律你才能爬取所有頁面的數據。

python爬蟲實例二:地圖上的火鍋美味_第3張圖片
我們來看下面的代碼,頂部是導的一些包,中間兩句是連接數據庫的下面講,def是定義了一個work的函數,用來執行爬取的步驟。for語句是一個循環語句,目的是從第一頁爬取到第幾頁,那邊的2是爬取到第二頁。如果有基礎的人不需要解釋,沒有基礎的就跟著看懂就好了,慢慢學就會知道了。其實我想說的是下面的url參數的分析,其他的東西都是可以查閱學到的。但分析url這件事卻是需要你足夠的耐性,才能發現它的規律,而且每個網站的接口參數是不同的,這是需要花費時間的最重要一步。
這些參數data其實還有很多(很多刪掉了),可以實現更多的搜索方法,比如根據經緯度去搜索指定區域的火鍋店。這里我只介紹幾個重要的參數,wd:是指要搜索的關鍵詞,這里是火鍋(其實你可以替換成任意的,想爬什么就爬什么)。
c:是指城市的代碼(這里同樣需要找到規律,只要你知道baidu所有城市的代碼,你就可以爬取所有城市的了,我有哦!很容易一搜一大把,需要你自己甑別)。pn和nn是重點啦,決定你爬取的頁數啦,找到規律哦。當頁數為第一頁的時候,pn和nn都為0。當頁數為第二頁的時候pn為1,nn為10(是不是很好找),然而接下來你就入坑了,你只能爬到兩頁。

python爬蟲實例二:地圖上的火鍋美味_第4張圖片

繼續找規律你會發現當pn竟然沒有等于2的,當pn等于3的時候,nn等于20,當pn等于4的時候,nn等于30。找到規律了吧,很坑吧(煩就不能好好的嗎,一點都不能玩耍)。

python爬蟲實例二:地圖上的火鍋美味_第5張圖片

接下來是頁面的解析,在找到規律后將剛才在瀏覽器上看到的url用一個新的窗口打開,你就會發現數據是下面這樣的(不是這樣的那你就是人氣大爆發了,被狗吃了,其實是你沒在瀏覽器加入JSONView擴展程序)。
python爬蟲實例二:地圖上的火鍋美味_第6張圖片

直接看代碼,經過上面的分析可以得下面的代碼,我們用requests庫去發送請求,返回得到的reponse數據是json格式的。然后去分析發現我們要的信息其實在content下(頁面很大,截圖只截取了一小部分),content有很多條所以需要for循環遍歷一下,然后發現數據都在ext中的detail_info下,就像下面代碼那樣取,然后信息又分別在下面name、poi_address等下面。通過下面的方式分別取出來(try是用來嘗試一下可不可以取到,不會因為沒取到報錯,程序不能繼續執行)。

python爬蟲實例二:地圖上的火鍋美味_第7張圖片

下面headers是將爬蟲程序偽裝成一個瀏覽器請求頭,url是基礎的網址,因為是get請求,剛才解析的url參數會直接拼接在上面,然后形成一個巨長的url,這個url就是你剛才解析頁面時復制的url。key_word就是你要爬取時搜索的關鍵詞,下面for遍歷其實你可以在上面key_word寫多個,然后都爬。然后我開了5個線程加快爬取的速度,其實baidu很友好的,沒有什么反爬機制。

python爬蟲實例二:地圖上的火鍋美味_第8張圖片


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 添人人躁日日躁夜夜躁夜夜揉 | 午夜视频免费 | 奇米影视第四色av首页 | 亚洲福利在线观看 | 国产精品成人va在线观看入口 | 天天操狠狠操夜夜操 | 狠狠色噜噜狠狠狠狠黑人 | 成人免费大片a毛片 | 亚洲香蕉在线视频 | 国产精品久久久久一区二区 | 中文精品视频 | 欧美成年网站 | 久久精品国产99国产精品澳门 | 日韩欧美在线一区 | 国产精品在线 | 国产第一页在线视频 | 久久久久久免费播放一级毛片 | 久久久久国产精品免费免费搜索 | 久久av电影院| 久久国内精品 | 国产精品极品美女自在线看免费一区二区 | 国产视频网 | 日韩欧美在线看 | 国产福利高清在线视频 | 日韩国产中文字幕 | 欧美日韩国产一区二区三区不卡 | 一97日本道伊人久久综合影院 | 麻豆影视在线 | 一级毛片免费播放 | 国产亚洲一区二区三区在线观看 | 欧美一区二区在线播放 | 综合久久久久综合 | 日本一区二区三区四区高清视频 | 亚洲精品一区henhen色 | 国产午夜精品福利视频 | 精品久| 日本亚洲精品色婷婷在线影院 | 亚洲免费一区二区 | 午夜影视网 | 中文字幕第一页在线 | 99精品视频一区在线视频免费观看 |