網(wǎng)站源碼爬?。ǐ@取網(wǎng)站源碼)
今天給各位分享網(wǎng)站源碼爬取的知識,其中也會(huì)對獲取網(wǎng)站源碼進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!
本文目錄一覽:
- 1、用requests庫爬取網(wǎng)站源碼問題
- 2、為什么別人網(wǎng)站源碼中只有少量內(nèi)容,其他通過js實(shí)現(xiàn)
- 3、python怎么爬取網(wǎng)頁源代碼
用requests庫爬取網(wǎng)站源碼問題
這個(gè)網(wǎng)頁是JavaScript異步加載的,直接用requests爬不到你想要的網(wǎng)頁源碼。
為什么別人網(wǎng)站源碼中只有少量內(nèi)容,其他通過js實(shí)現(xiàn)
最有可能的原因就是網(wǎng)頁數(shù)據(jù)是動(dòng)態(tài)加載的,存儲(chǔ)在一個(gè)json文件中,直接獲取源碼是提取不到任何信息的,需要抓包分析才行,下面我簡單介紹一下操作過程,以某某貸上的數(shù)據(jù)為例(動(dòng)態(tài)加載):
1.首先,打開原網(wǎng)頁,如下,這里假設(shè)我們要爬取的數(shù)據(jù)包含年利率、借款標(biāo)題、期限、金額和進(jìn)度5個(gè)字段:
2.接著右鍵打開網(wǎng)頁源碼,按Ctrl+F搜索其中關(guān)鍵字,如“10.20%”,可以看到,任何信息都匹配不到,說明數(shù)據(jù)是動(dòng)態(tài)加載的,而非直接嵌套在網(wǎng)頁源碼中:
3.按F12調(diào)出瀏覽器開發(fā)者工具,開始抓包分析,依次點(diǎn)擊“Network”-“XHR”,F(xiàn)5刷新頁面,可以看到,數(shù)據(jù)是動(dòng)態(tài)加載的,存儲(chǔ)在一個(gè)json文件中,而非html網(wǎng)頁源碼,只有解析這個(gè)json文件,才能提取出我們需要的數(shù)據(jù):
4.接著就是根據(jù)抓包結(jié)果解析json文件,已經(jīng)獲取到url地址,所以直接get請求即可,然后用python自帶的json包解析就行,測試代碼如下,非常簡單,依次根據(jù)屬性提取字段信息即可:
5.最后點(diǎn)擊運(yùn)行程序,截圖如下,已經(jīng)成功提取到我們需要的數(shù)據(jù):
至此,我們就完成了網(wǎng)頁動(dòng)態(tài)數(shù)據(jù)的爬取。總的來說,整個(gè)過程非常簡單,最主要的還是抓包分析,獲取到真實(shí)存儲(chǔ)數(shù)據(jù)的文件,然后再解析就行,只要你有一定的python基礎(chǔ),熟悉一下上面的過程,很快就能掌握的,當(dāng)然,如果數(shù)據(jù)或鏈接進(jìn)行了加密處理,這個(gè)就非常復(fù)雜了,需要自己好好琢磨一下,網(wǎng)上也有相關(guān)資料和教程,感興趣的話,可以搜一下,希望以上分享的內(nèi)容能對你有所幫助吧,也歡迎大家評論、留言進(jìn)行補(bǔ)充。
python怎么爬取網(wǎng)頁源代碼
#!/usr/bin/env python3
#-*- coding=utf-8 -*-
import urllib3
if __name__ == '__main__':
http=urllib3.PoolManager()
r=http.request('GET','IP')
print(r.data.decode("gbk"))
可以正常抓取。需要安裝urllib3,py版本3.43
網(wǎng)站源碼爬取的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于獲取網(wǎng)站源碼、網(wǎng)站源碼爬取的信息別忘了在本站進(jìn)行查找喔。
掃描二維碼推送至手機(jī)訪問。
版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請注明出處。