在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/數(shù)據(jù)分析&挖掘  Python/ 如何快速爬取網(wǎng)頁上用ajax加載但需要appid/appkey才能授權(quán)拿到內(nèi)容?

如何快速爬取網(wǎng)頁上用ajax加載但需要appid/appkey才能授權(quán)拿到內(nèi)容?

首先聲明,這是非商業(yè)目的、純個人興趣的學(xué)習(xí)。python新手,問題如果幼稚請見諒。

我想爬的這個網(wǎng)頁,是用ajax動態(tài)加載,發(fā)送post請求到第三方后臺(SaaS),驗證后以json格式返回內(nèi)容,然后顯示在網(wǎng)頁上。
因為缺少appid/appkey,我無法直接用requests庫發(fā)送post請求拿到內(nèi)容,直接抓取的結(jié)果是"Unauthorized"。
Appid/Appkey我肯定是拿不到了,這是不是就是說通過requests請求這條路行不通了?
<<< 修改:這里的假設(shè)是錯誤的囧,具體詳見回答。有ajax的網(wǎng)頁,還是用requests直接請求數(shù)據(jù)源最快。

另外,我試過用selenium模擬瀏覽器直接加載頁面,但是要等頁面加載完所有ajax基本上需要個十來秒,效率極為低下。
而且這是一個single-page的條目頁面,每頁顯示20條信息,點擊“下一頁”后不會跳轉(zhuǎn),而是又一次請求后臺刷新內(nèi)容,因此只能單線程的加載 -> 等10秒 -> 拿內(nèi)容 -> 點下一頁 -> 加載 -> 等10秒 ……

想知道有沒有什么比較快速的方法爬到想要的數(shù)據(jù)呢?

回答
編輯回答
久舊酒

[自問自答] 我后來發(fā)現(xiàn)了,用chrome dev tool其實可以看到頁面本身請求數(shù)據(jù)時發(fā)送的appid/appkey,不過不是以這樣的param name呈現(xiàn)出來,所以一開始被我忽視了。實際上只要把這兩個鍵值對加進header里,并加上chrome里看得到的payload信息,用requests發(fā)送POST請求,就可以直接調(diào)取數(shù)據(jù)庫信息了。

2018年1月11日 12:54
編輯回答
妖妖

一般來講,selenium跟requests的最大區(qū)別就是幫你解析并執(zhí)行html,css,js等(耗時長)。
其中解析js是你最希望的,如果你可以手動解析js填上Appid/Appkey,完全可以用requests完成。

2018年3月13日 22:32