爬取过程虽然简单,但以学习为目的,在中间使用了一些库以及python语法的高级用法。
获取电影详情页
打开https://movie.douban.com/top250? 网址,翻到最下面,打开开发者工具,随便点击翻页。会看到下图请求的URL,URL里只有start变化,每次翻页加25,到250截至。
全篇提取信息全用正则表达式。
获取详情页
def get_detail_url(base_url):
"""
:param base_url: 初始网页
:return: 每页电影url的列表
"""
html = requests.get(url=base_url, headers=headers).text
url = re.findall('<a href="(.*?)" class="">', html)
return url
提取电影信息
因为这次写入csv文件,返回数据时以列表形式
def get_film_info(film_url):
"""
:param film_url: 每个电影的url
:return: 电影信息的列表
"""
html = requests.get(url=film_url, headers=headers).text
mark = re.search('"ratingValue": "(.*?)"', html).group(1) # 评分
name = re.search('e="title" value="(.*?)">', html).group(1) # 电影名
total_mark = re.search(r'<span property="v:votes">(\d+)</span>', html).group(1)