Python爬虫之旅_TWO
前言:
ONE中了解了爬蟲和requests模塊的基本使用,這次就來跟著老師來做一個綜合性的案例
0x00:案例說明
這次要爬取的是化妝品企業具體的生產許可信息
0x01:進行分析
首先要判斷這個頁面出現的企業的信息是否是動態加載出來的還是隨著該url直接出現的
可以F12查看一下也可以寫一個py腳本爬取一下
捕獲到了該頁面的數據,可以查詢一下企業名稱是否在該數據中即可驗證信息是通過何種方式加載的
查詢企業名稱是沒有的,說明該頁面的信息數據是通過動態加載出來即(Ajax)
那我們就捕獲一下Ajax請求
果然是動態加載出來的
可以看到參數等,這里就先總結一下查到的信息
既然這個頁面信息我們已經分析好了,那接下來就看公司的具體許可信息,隨便點進去一個,看到有如下信息
這里還需要進行分析一下,信息是通過該鏈接直接呈現出來了還是通過動態加載出來的,方法和剛才分析首頁一樣,我這里就直接查看Ajax請求,發現確實有
查看一下,參數只有id一個
多試幾個企業便會發現這個url是不變的,唯一變的便是參數id
到這里為止,再統計一下該頁面查到的信息
分析過后,就來寫出爬取代碼
0x02:進行爬取
先將首頁的json串格式化一下,便于觀看
格式化后,發現是一個字典,llist是一個列表,列表中又包含字典,便可以遍歷value值,從而可以得到ID值
這個時候我們收集的信息就要用到了
爬取后就會發現這樣就可以得到這一頁所有企業的ID
那么ID拿到了,企業的具體許可信息便可以通過ID的來展示出來
這樣就爬取成功了,如果想要爬取更多頁面也不麻煩只需將'page': '1'這個參數設置為動態即可
0x03:最終代碼
import requests import json if __name__ == '__main__':url = 'http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsList'#UA偽裝headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'}# 建立一個空列表永遠存儲ID值id_message = []# 建立一個存儲企業詳細信息的列表all_date = []#查詢多頁數據,添加一個循環即可for page in range(1,3):#轉換為字符類型page = str(page)#導入參數data = {'on': 'true','page': page,'pageSize': '15','productName':'','conditionType': '1','applyname':'','applysn':'',}#發起請求message = requests.post(url=url,data=data,headers=headers).json()#數據是一個字典,而list的value值中包含ID值,所以需要從value值中取出ID值for dict in message['list']:id_message.append(dict['ID'])#根據ID號獲得企業的詳細數據date_url = 'http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsById'#遍歷ID列表for id in id_message:datas = {'id': id}detail_message = requests.post(url=date_url,data=datas,headers=headers).json()# print(detail_message)#列表中存儲all_date.append(detail_message)#存儲到本地fp = open('message.txt','w',encoding='utf-8')json.dump(all_date,fp=fp,ensure_ascii=False,indent=4)print("爬取成功咯")爬取的信息
總結:
這次通過案例的訓練,掌握了分析方法,接下來學習數據解析!
繼續加油,向著優秀的方向前進!!
總結
以上是生活随笔為你收集整理的Python爬虫之旅_TWO的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python爬虫之旅_ONE
- 下一篇: 初识反弹Shell