亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

利用Python爬取豆瓣電影

系統 1572 0

目標:使用Python爬取豆瓣電影并保存MongoDB數據庫中

我們先來看一下通過瀏覽器的方式來篩選某些特定的電影:

我們把URL來復制出來分析分析:

https://movie.douban.com/tag/#/?sort=T&range=0,10&tags=%E7%94%B5%E5%BD%B1,%E7%88%B1%E6%83%85,%E7%BE%8E%E5%9B%BD,%E9%BB%91%E5%B8%AE

有3個字段是非常重要的:

  1.sort=T

  2.range=0,10

  3.tags=%E7%94%B5%E5%BD%B1,%E7%88%B1%E6%83%85,%E7%BE%8E%E5%9B%BD,%E9%BB%91%E5%B8%AE

具體分析方法如下:

  1.sort:表示排序方式,可以看到它有3中排序方式

根據上圖可以直到每個字母表示的含義:

 T:熱度排序,

    R:時間排序,

    S:評價排序:

?

  2.range=0,10;表示一個范圍,具體是什么范圍呢?

  range參數我們也搞定了,它就是表示評分區間!

    默認評分區間是:0-10

?

  3.tags:同樣的原理,這是一個標簽

    我們選中的標簽有:電影,愛情,美國,黑幫4個標簽,但是在tags里面我們看到的不是這寫漢字,而是被編碼過的形式!

    %E7%94%B5%E5%BD%B1,%E7%88%B1%E6%83%85,%E7%BE%8E%E5%9B%BD,%E9%BB%91%E5%B8%AE)

    那如何知道這些字符是表示什么呢?

  我們可以到網上進行解碼看看正不正確?

?

?

  4.那么還有沒有可以選擇的參數呢?

  我們還有2個參數可以選擇!

    playbale=1:表示可播放

    unwatched=1:表示還沒看過的

至此,我們就已經把URL中的查詢參數全都弄明白了!

?

但是,又有一個問題了,當我們在瀏覽器中點擊"加載更多"按鈕時,這個地址欄中的URL并沒有發生變化,但是電影信息可以加載出來了!這是為什么?

  如果知道AJAX加載技術的讀者可能知道這個原理,實際上就是異步加載,服務器不需要刷新整個網頁,只需要刷新局部網頁就可以把數據展示到網頁中,這樣不僅可以加快速度,也可以減少服務器的壓力.

?

重點來了:

  抓包結果:

?

看看瀏覽器地址欄的URL與Request URL有什么不一樣的地方?

  我們在瀏覽器地址欄中看到的URL是:

https://movie.douban.com/tag/#/?

      sort=S&range=5,10&tags=%E7%94%B5%E5%BD%B1,%E7%88%B1%E6%83%85,%E7%BE%8E%E5%9B%BD&playable=1&unwatched=1

  實際瀏覽器發送的Request URL是:

https://movie.douban.com/j/new_search_subjects?

sort=S&range=5,10&tags=%E7%94%B5%E5%BD%B1,%E7%88%B1%E6%83%85,%E7%BE%8E%E5%9B%BD&playable=1&unwatched=1&start=0

  除了被紅色標記的地方不同之外,其他地方都是一樣的!那我們發送請求的時候應該是用哪一個URL呢?

  在上面我就已提到了,在豆瓣電影中,是采用異步加載的方式來加載數據的,也就是說在加載數據的過程中,地址欄中的URL是一直保持不變的,那我們還能用這個URL來發送請求嗎?當然不能了!

既然不能用地址欄中的URL來發送請求,那我們就來分析一下瀏覽器實際發送的Request URL:

  我們把這個URL復制到瀏覽器中看看會發生什么情況!

我們可以看到這個URL的響應結果恰恰就是我們想要的數據,采用json格式.在Python中,我們可以利用一些工具把它轉換成字典格式,來提取我們想要的數據.

?

距離我們成功還有一小步:

  在這個URL中,我們看到還有一個參數:start,這個是干嘛的呢?

  這個數值表示偏移量,來控制每一次加載的偏移位置是在哪里!比如我們把它設置成20,表示一次請求的電影數量.那么得到的結果如下:

到這里,該案例的思路,難點就已經全都捋清楚了,剩下的就是代碼的事情了!

?

項目結構:

完整的代碼如下:

利用Python爬取豆瓣電影_第1張圖片


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美成人极品怡红院tv | 99精品国产三级在线观看 | 级毛片久久久毛片精品毛片 | 亚洲综合涩 | 国内精品一区二区 | 九九热免费视频 | 中文字幕 国产精品 | 免看一级a一片成人123 | 日本亚洲成高清一区二区三区 | 久久精品亚洲综合一品 | 欧美亚洲国产精品久久第一页 | 国产护士资源总站 | 99久久99热久久精品免费看 | 成年女人视频在线观看免费 | 国产成人综合日韩精品婷婷九月 | 国产精品自在线拍 | 日本一本久道 | 亚洲国产精品热久久2022 | 成人激情视频在线 | 中文字幕一区在线播放 | 欧美美妇性较大毛片 | 色综合色狠狠天天久久婷婷基地 | 欧美激情视频一区 | 99久久这里只精品国产免费 | 欧美在线一级视频 | www.奇米第四色| 欧美人一级淫片a免费播放 欧美人与zoxxxx另类9 | 91热久久免费频精品99欧美 | 91精品国产91久久久久久 | 浮力影院欧美三级日本三级 | 亚洲国产欧美日韩一区二区 | 国产精品九九九久久九九 | 欧美一区二区久久精品 | 婷婷在线视频国产综合 | 青草视频网站 | 亚洲国产成人久久一区久久 | 全亚洲最大的免费私人影剧院 | 欧美一区二区三区在线视频 | www色综合| 久久午夜伦理 | 日本一级毛片高清免费观看视频 |