大家好,我是辰哥。
這幾天在辰哥的技術交流群里有讀者反應說不會爬取攜程的評論數據,今天辰哥給讀者安排上。作為辰哥的文章讀者,辰哥必須教會大家如何爬取攜程評論數據(哈哈哈)。
下面就以長隆野生動物世界為例,講解如何去爬取攜程評論數據。
涉及核心知識點:
Ajax異步請求分析
發送post請求
01
分析數據源
這里的數據源是指html網頁?還是Aajx異步。對於爬蟲初學者來說,可能不知道怎么判斷,這里辰哥也手把手過一遍。
提示:以下操作均不需要登錄(當然登錄也可以)
咱們先在瀏覽器里面搜索攜程,然后在攜程里面任意搜索一個景點:長隆野生動物世界,這里就以長隆野生動物世界為例,講解如何去爬取攜程評論數據。
頁面下方則是評論數據
1.分析數據源
從上面兩張圖可以看出,點擊評論下一頁,瀏覽器的鏈接沒有變化,說明數據是Ajax異步請求。因此我們就找到了數據是異步加載過來的,這時候需要去network里面是查看數據包。
02
分析數據包
在network中找到下面這個數據包
查看Preview里面的內容(請求返回內容)
可以看到數據已經請求到了,下面看一下數據是否是正確的(和網頁內容一致)。
ok,沒問題之后,下面開始編寫Python程序去請求數據。
1.請求地址
可以獲取到請求鏈接和請求方式。
這里請求不用添加請求頭header也是可以的。其中postUrl是請求鏈接,data_1是請求參數。
2.請求參數
在network里可以看到請求參數
在程序中的構建如下:
其中需要關注的是arg中的pageIndex(頁數),pageSize(每頁條數)。
最終結果如下:
該景點的評論就可以成功爬取下來了。
03
采集全部評論
上面只是采集了第一頁的評論數據,通過改變arg中的pageIndex(頁數),就可以遍歷爬取全部的評論。
比如這個景點一共是300頁。現在把循環給加上
最終的完整代碼如下:
04
小結
本文涉及核心知識點:
Ajax異步請求分析
發送post請求
最后說一聲:原創不易,求給個贊、在看
、評論
推薦閱讀