urllib.request爬取电影排名,复制以下代码可以直接执行:
-- coding:utf-8 --
import urllib
import urllib.request
import time
import json
import re
url = “https://movie.douban.com/j/chart/top_list?type=11&interval_id=100%3A90&action”
headers = {“User-Agent” : “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36”}
formdata = {
“start”:“0”,
“limit”:“20”
}
data = urllib.parse.urlencode(formdata).encode(“utf-8”)
request = urllib.request.Request(url, data = data, headers = headers)
dd=urllib.request.urlopen(request).read()
s=dd.decode(‘utf-8’) #bytes转普通字符串
#print(s)
data2=json.loads(s) #将json字符串转换成python对象,在这里转换成了list
print(data2[0][“title”])
#“rating”:[“9.6”,“50”]
#“title”:“肖申克的救赎”,
pattern1=re.compile(r’“rating”:["(.?)","\d+"]’,re.I) #获取电影得分
pattern2=re.compile(r’“title”:"(.?)"’,re.I) #获取电影名字
data1=pattern1.findall(s)
data2=pattern2.findall(s)
for x in range(len(data1)):
print(“排名:”+str(x+1)+“电影名:”,data2[x],“豆瓣得分:”+data1[x])