Python爬蟲教程-17-ajax爬取實例(豆瓣電影)

Python爬蟲教程-17-ajax爬取實例(豆瓣電影)

ajax: 簡單的說,就是一段js代碼,經過這段代碼,能夠讓頁面發送異步的請求,或者向服務器發送一個東西,即和服務器進行交互python

對於ajax:
  • 1.必定會有 url,請求方法(get, post),可能有數據
  • 2.通常使用 json 格式

爬取豆瓣電影

  • 網站分析:
    • 打開豆瓣電影網站:https://movie.douban.com/,選擇【排行榜】,點擊【動做】分類
    • 一直往下滑,能夠看到這樣的效果:快到低的時候又有了新的內容,也就是往下沒完
    • 基本能夠斷定使用了 ajax 請求,進行異步的加載
      這裏寫圖片描述
    • 而後進去檢查請求的信息:
      • 1.右鍵【檢查】>【Network】
      • 2.向下滾動頁面
      • 3.能夠看到請求在不斷不更新,點擊一個請求,就能夠看到請求的信息
        這裏寫圖片描述
  • 代碼文件:https://xpwi.github.io/py/py%E7%88%AC%E8%99%AB/py19db.py
# 爬取豆瓣電影數據
# 瞭解ajax的爬取方式
# https://movie.douban.com/

from urllib import request
import json

# url信息:interval_id表示排名段(可自行修改),limit限制20個
url = "https://movie.douban.com/j/chart/top_list?type=5&interval_id=100%3A90&action=&start=20&limit=20"

rsp = request.urlopen(url)
data = rsp.read().decode()

data = json.loads(data)

print(data)

運行結果

能夠看到結果在一行顯示
這裏寫圖片描述git

修改輸出格式

# 爬取豆瓣電影數據
# 瞭解ajax的爬取方式
# https://movie.douban.com/

from urllib import request
import json

# url信息:interval_id表示排名段(可自行修改),limit限制20個
url = "https://movie.douban.com/j/chart/top_list?type=5&interval_id=100%3A90&action=&start=20&limit=20"

rsp = request.urlopen(url)
data = rsp.read().decode()

data = json.loads(data)

# 遍歷輸出每一個'k'和'v'的值
for item in data:
      print("排名:", item['rank'], "\n",
            "名稱:", item['title'], "\n",
            "類型:", item['types'], "\n",
            "主演:", item['actors'], "\n",
            "分數:", item['score'],"\n-------------",)

運行結果

這裏寫圖片描述
這裏結果就比較順眼了,若是須要更改排名段,由於是get請求,修改須要在url參數便可github

更多文章連接:Python 爬蟲隨筆

  • 本筆記不容許任何我的和組織轉載
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息