亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺談如何使用python抓取網(wǎng)頁中的動(dòng)態(tài)數(shù)據(jù)實(shí)現(xiàn)

 更新時(shí)間:2020年08月17日 11:08:10   作者:saintlas  
這篇文章主要介紹了淺談如何使用python抓取網(wǎng)頁中的動(dòng)態(tài)數(shù)據(jù)實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

我們經(jīng)常會(huì)發(fā)現(xiàn)網(wǎng)頁中的許多數(shù)據(jù)并不是寫死在HTML中的,而是通過js動(dòng)態(tài)載入的。所以也就引出了什么是動(dòng)態(tài)數(shù)據(jù)的概念,動(dòng)態(tài)數(shù)據(jù)在這里指的是網(wǎng)頁中由Javascript動(dòng)態(tài)生成的頁面內(nèi)容,是在頁面加載到瀏覽器后動(dòng)態(tài)生成的,而之前并沒有的。

在編寫爬蟲進(jìn)行網(wǎng)頁數(shù)據(jù)抓取的時(shí)候,經(jīng)常會(huì)遇到這種需要?jiǎng)討B(tài)加載數(shù)據(jù)的HTML網(wǎng)頁,如果還是直接從網(wǎng)頁上抓取那么將無法獲得任何數(shù)據(jù)。

今天,我們就在這里簡單聊一聊如何用python來抓取頁面中的JS動(dòng)態(tài)加載的數(shù)據(jù)。

給出一個(gè)網(wǎng)頁:豆瓣電影排行榜,其中的所有電影信息都是動(dòng)態(tài)加載的。我們無法直接從頁面中獲得每個(gè)電影的信息。

如下圖所示,我們無法在HTML中找到對(duì)應(yīng)的電影信息。

在Chrome瀏覽器中,點(diǎn)擊F12,打開Network中的XHR,我們來抓取對(duì)應(yīng)的js文件來進(jìn)行解析。如下圖:

在豆瓣頁面向下拖拽,使得頁面加載入更多的電影信息,從而我們可以抓取對(duì)應(yīng)的報(bào)文。

我們可以看到它采用的是AJAX異步請(qǐng)求。通過在后臺(tái)與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,AJAX 可以使網(wǎng)頁實(shí)現(xiàn)異步更新。因此就可以在不重新加載整個(gè)網(wǎng)頁的情況下,對(duì)網(wǎng)頁的某部分進(jìn)行更新,從而實(shí)現(xiàn)數(shù)據(jù)的動(dòng)態(tài)載入。

我們可以看到,通過GET,我們得到的response之中包含了所對(duì)應(yīng)的電影相關(guān)信息,它們以JSON的格式保存在一起。

查看一下RequestURL信息,我們可以發(fā)現(xiàn)在action參數(shù)之后又跟了兩個(gè)參數(shù)"start"和"limit",很顯然它們的意思是:"從某個(gè)位置開始返回的電影的個(gè)數(shù)"。

如果想快速獲取相關(guān)的電影信息,就可以直接把這個(gè)URL復(fù)制進(jìn)地址欄,修改你所需要的start和limit參數(shù)值,將得到對(duì)應(yīng)的結(jié)果進(jìn)行抓取即可。

但是這樣顯得很不自動(dòng)化,而且很多其他網(wǎng)站的RequestURL并不給的這么直接,所以我們接下來用python進(jìn)行進(jìn)一步的操作來獲取這個(gè)返回的報(bào)文信息。

#coding:utf-8
import urllib
import requests

post_param = {'action':'','start':'0','limit':'1'}
return_data = requests.get("https://movie.douban.com/j/chart/top_list?type=11&interval_id=100%3A90",data =post_param, verify = False)
print return_data.text

因?yàn)槎拱晔莌ttps的,所以我們?cè)诖颂幮枰晕⒆⒁庖幌?,將verify置為False表示不需要驗(yàn)證SSL證書。

我們可以發(fā)現(xiàn)打印出的結(jié)果中就是對(duì)應(yīng)的JSON文件,下一步的解析和操作在這里就不贅述了。

[{"rating":["9.6","50"],"rank":1,"cover_url":"https://img3.doubanio.com\/view\/movie_poster_cover\/mpst\/public\/p480747492.jpg","is_playable":true,"id":"1292052","types":["犯罪","劇情"],"regions":["美國"],"title":"肖申克的救贖","url":"https:\/\/movie.douban.com\/subject\/1292052\/","release_date":"1994-09-10","actor_count":15,"vote_count":713205,"score":"9.6","actors":["蒂姆·羅賓斯","摩根·弗里曼","鮑勃·岡頓","威廉姆·賽德勒","克蘭西·布朗","吉爾·貝羅斯","馬克·羅斯頓","詹姆斯·惠特摩","杰弗里·德曼","拉里·布蘭登伯格","尼爾·吉恩托利","布賴恩·利比","大衛(wèi)·普羅瓦爾","約瑟夫·勞格諾","祖德·塞克利拉"],"is_watched":false}]

到此這篇關(guān)于淺談如何使用python抓取網(wǎng)頁中的動(dòng)態(tài)數(shù)據(jù)實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python抓取網(wǎng)頁動(dòng)態(tài)數(shù)據(jù) 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MacOS安裝python報(bào)錯(cuò)"zsh:?command?not?found:python"的解決方法

    MacOS安裝python報(bào)錯(cuò)"zsh:?command?not?found:python"的

    這篇文章主要給大家介紹了關(guān)于MacOS安裝python報(bào)錯(cuò)"zsh:?command?not?found:python"的解決方法,文中將解決的辦法介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • django框架模板語言使用方法詳解

    django框架模板語言使用方法詳解

    這篇文章主要介紹了django框架模板語言使用方法,結(jié)合實(shí)例形式詳細(xì)分析了Django框架常用的模板語言語法與相關(guān)使用技巧,需要的朋友可以參考下
    2019-07-07
  • Python基礎(chǔ)詳解之描述符

    Python基礎(chǔ)詳解之描述符

    這篇文章主要介紹了Python基礎(chǔ)詳解之描述符,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • python中的lambda函數(shù)用法指南

    python中的lambda函數(shù)用法指南

    Lambda函數(shù)是Python中的匿名函數(shù),下面這篇文章主要給大家介紹了關(guān)于python中l(wèi)ambda函數(shù)用法的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • Django ManyToManyField 跨越中間表查詢的方法

    Django ManyToManyField 跨越中間表查詢的方法

    今天小編就為大家分享一篇Django ManyToManyField 跨越中間表查詢的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • 詳解python之多進(jìn)程和進(jìn)程池(Processing庫)

    詳解python之多進(jìn)程和進(jìn)程池(Processing庫)

    本篇文章主要介紹了詳解python之多進(jìn)程和進(jìn)程池(Processing庫),非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-06-06
  • pygame實(shí)現(xiàn)井字棋之第一步繪制九宮格

    pygame實(shí)現(xiàn)井字棋之第一步繪制九宮格

    這篇文章主要介紹了pygame實(shí)現(xiàn)井字棋之第一步繪制九宮格,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • scrapy spider的幾種爬取方式實(shí)例代碼

    scrapy spider的幾種爬取方式實(shí)例代碼

    這篇文章主要介紹了scrapy spider的幾種爬取方式實(shí)例代碼,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • 通過Python來使用七牛云存儲(chǔ)的方法詳解

    通過Python來使用七牛云存儲(chǔ)的方法詳解

    這篇文章主要介紹了通過Python來使用七牛云存儲(chǔ)的方法詳解,七牛云存儲(chǔ)是國內(nèi)領(lǐng)先的服務(wù)器數(shù)據(jù)備份解決方案商,需要的朋友可以參考下
    2015-08-08
  • python celery beat實(shí)現(xiàn)定時(shí)任務(wù)的示例代碼

    python celery beat實(shí)現(xiàn)定時(shí)任務(wù)的示例代碼

    在日常工作中,我們常常會(huì)用到需要周期性執(zhí)行的任務(wù),本文主要介紹了python celery beat實(shí)現(xiàn)定時(shí)任務(wù)的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03

最新評(píng)論