python爬取豆瓣電影之影視電影分析
1.獲取url
打開獲取數據網頁-->右鍵檢查-->進到如下界面-->找如下json類型的url網址(key:value)
2.查看Headers部分,獲取url,這個url就是你爬取數據源頭
3.分析url的參數:
https://movie.douban.com/j/search_subjects?type=tv&tag=%E7%83%AD%E9%97%A8&sort=recommend&page_limit=20&page_start=0
start=0: 表示從第一個電影開始查詢
limit=20: 表示每一次查詢20部電影
type: 表示影視類型
因此你如果要爬取更多類型的數據,就可以更改type就可以了,我們在這兒僅僅爬取"熱門"類型的數據
此外,我們還需要headers部分的下面的倆個數據
4.python代碼展示: 需要的模塊,requests/json
import requests
import json
headers={
"Referer": "https://movie.douban.com/tv/",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
}
#我們在這爬取前120部影視劇的信息,start=0;每次查詢20部,查詢6次
i=0
while(i<=120):
#更改start的數據,逐步爬取每一頁的數據 (0,20,40,60....120)
url = "https://movie.douban.com/j/search_subjects?
type=tv&tag=%E7%83%AD%E9%97%A8&sort=recommend&page_limit=20&page_start={}"
url = url.format(repr(i)) #格式化start
print(url)
response = requests.get(url,headers=headers) #requests作為python爬取的工具
str = response.content.decode("utf-8") # 返回的是一個字符串
print(str)
#我們需要將str轉化成json數據進行提取你需要的數據
json_dict = json.loads(str) #返回的是一個字典類型的json數據
#我們要提取的數據有: id titile url rate cover_x這幾部分數據
list = json_dict["subjects"] #輸出json_dict可以到subjects對應的value是一個序列,序列中存
放的是字典類型,可以提取數據
for l in list:
print(repr(l["id"]) + repr(l["title"]) + repr(l["url"]) + repr(l["rate"]) +
repr(l["cover_x"]))
#將提取的數據寫入到文件中
with open("douban2.txt","a",encoding="utf-8") as f:
f.write(repr(l["id"]) + "\t" + repr(l["title"]) + "\t" + repr(l["url"]) +
"\t" + repr(l["rate"]) + "\t" + repr(l["cover_x"]) + "\n")
i+=20
5.輸出結果顯示: