Python爬蟲教程-17-ajax爬取例項(豆瓣電影)
ajax: 簡單的說,就是一段js程式碼,通過這段程式碼,可以讓頁面傳送非同步的請求,或者向伺服器傳送一個東西,即和伺服器進行互動
對於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)
執行結果
可以看到結果在一行顯示
修改輸出格式
- 對於返回的json資料,我們選擇想要的內容,想要的格式輸出
- 程式碼檔案:https://xpwi.github.io/py/py%E7%88%AC%E8%99%AB/py19db2.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)
# 遍歷輸出每個'k'和'v'的值
for item in data:
print("排名:", item['rank'], "\n",
"名稱:", item['title'], "\n",
"型別:", item['types'], "\n",
"主演:", item['actors'], "\n",
"分數:", item['score'],"\n-------------",)
執行結果
這裡結果就比較順眼了,如果需要更改排名段,因為是get請求,修改需要在url引數即可
更多文章連結:Python 爬蟲隨筆
- 本筆記不允許任何個人和組織轉載