基于python3.6—pycharm编写的,都已经调试过了,欢迎大家提出交流意见。
关于一些基础的数据网页分析(比如为什么是这个url)没有过多赘述,看不懂的自行百度。
源码可以直接拷贝运行。
转载请注明来源。
import reimport requests'''Python抓取豆瓣爱情电影排行Top2001、payload构建url2、get方式打开url3、re.findall正则表达式提取数据'''def main():url = "/j/chart/top_list?type=13&interval_id=100%3A90"headers = {'Host':'','Referer':'/','User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'} #模拟浏览器访问,防止服务器封IPpayload = {'action':'','start':'0','limit':'20'} #构建url传递字典file = open('douban.txt', 'w', encoding='utf-8') #打开写入文件for k in range(0,10):payload['start'] = k * 20 #构建url变量resp = requests.get(url,params=payload,headers=headers) #生成url并回传结果resp.encoding = 'utf-8' #设置编码#正则表达式生成电影信息Name = re.findall(r'"title":"([^"]+)"', resp.text, re.I) #电影名字Score = re.findall(r'"score":"([^"]+)"', resp.text, re.I) #电影评分Date = re.findall(r'release_date":"([^"]+)"', resp.text, re.I) #上映日期Rank = re.findall(r'rank":([^"]+)', resp.text, re.I) #豆瓣排名x = len(Name) # 每一页包含电影的数量for i in range(0, x): # 把列表的数据保存到文件中file.write('豆瓣排名:' + Rank[i].strip(',') + '\n' + '名称:' + Name[i] + '\n' + '上映时间:' + Date[i] + '\n' + '评分:' + Score[i] + '\n' + '\n\n')print("正在加载第", k*20+i+1, "部")file.close()if __name__ == '__main__':main()