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

利用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條評論
主站蜘蛛池模板: 热99精品在线 | 色播播影院 | a毛片免费播放全部完整 | 婷婷中文在线 | 亚洲精品在线不卡 | 国内精品福利视频 | 免费网站日本永久免费观看 | 天天操夜夜欢 | 久久99热精品这里久久精品 | 5388国产亚洲欧美在线观看 | 久久国产视频在线观看 | 国产极品福利 | 国产中文字幕视频在线观看 | 色黄啪啪网18以下免费进 | 亚洲精品第四页中文字幕 | 国产成人午夜性视频影院 | 久久久窝窝午夜精品 | 国产你懂得| 欧美亚洲网 | 99国产大尺度福利视频 | 伊人五月 | 2021国产精品自产拍在线观看 | 日韩 欧美 中文字幕 不卡 | 四虎影片| 99久久国产综合精品女不卡 | 天天在线干 | 久久综合影院 | 综合免费一区二区三区 | 最新日本一级中文字幕 | 成年女人18级毛片毛片免费观看 | 久久免费网 | 四虎网址换成什么了2021 | 日本久久精品免视看国产成人 | 欧美成人欧美激情欧美风情 | 四虎影片国产精品8848 | 韩国高清乱理伦片中文 | 模特啪啪 | 欧美激情亚洲激情 | 欧美视频亚洲视频 | 久久最近最新中文字幕大全 | 欧美不卡精品中文字幕日韩 |