- '''
- 主页:
- https://movie.douban.com/top250
- GET
- User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) ApplewebKit/537.36 (Khtml, like Gecko) Chrome/65.0.3325.146 Safari/537.36
- re 正则:
- # PS: 电影详情页 url, 图片链接, 电影名称, 导演, 主演, 电影上映时间, 电影评分, 评价人数, 简介
- <div class="item">.*?href="(.*?)">.*?src="(.*?)" class="">.*?<span class="title">(.*?)</span>.*? 导演:(.*?).*? 主演: (.*?) /...<br>(.*?)</p>.*?content="(.*?)"></span><span>(.*?) 人评价.*?<span class="inq">(.*?)</span>
- ''''''
- 每一页 URL:
- 第一页: https://movie.douban.com/top250
- 第二页: https://movie.douban.com/top250?start=25&filter=
- 第三页: https://movie.douban.com/top250?start=50&filter=
- .....
- 第九页: https://movie.douban.com/top250?start=200&filter=
- 第十页: https://movie.douban.com/top250?start=225&filter=
- '''
- import requests
- import re
- #请求头
- headers={
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.90 Safari/537.36'
- }
- base_url='https://movie.douban.com/top250?start={}&filter='
- num=0
- for i in range(10):
- url=base_url.format(i)
- num+=25
- print(url)
- #1, 往豆瓣发送请求
- response=requests.get(url,headers=headers)
- # 2, 通过正则解析提取数据
- # PS: 电影详情页 url, 图片链接, 电影名称, 导演, 主演, 电影上映时间, 电影评分, 评价人数, 简介
- movie_content_list=re.findall('<div class="item">.*?href="(.*?)">.*?src="(.*?)"class="">.*?<span class="title">(.*?)</span>.*?<div class="bd">.*? 导演:(.*?)<br>(.*?)</p>.*?<span class="rating_num".*?>(.*?)</span>.*?<span>(.*?) 人评价.*?<span class="inq">(.*?)</span>',
- response.text,re.S)
- #解压赋值每一部电影
- for move_content in movie_content_list:
- detail_url,image_url,movie_name,acters,movie_time,movie_grade,number,content=move_content
- detail_data=f'电影 url:{detail_url}, 图片链接:{image_url}, 电影名称:{movie_name}, 导演和主演:{acters}, 电影上映时间:{movie_time}, 电影评分:{movie_grade}, 评价人数:{number}, 简介:{content}\n'
- print(detail_data)
- #保存数据
- with open('douban.txt','a',encoding='utf-8')as f:
- f.write(detail_data)
来源: http://www.bubuko.com/infodetail-3095856.html