python爬取豆瓣TOP250

豆瓣用户每天都在对“看过”的电影进行“很差”到“力荐”的评价,豆瓣根据每部影片看过的人数以及该影片所得的评价等综合数据,通过算法分析产生豆瓣电影 Top 250。
首先 我们进入到豆瓣top250这个界面,首先,我们先确认要爬取的内容是不是在页面源代码中,如果在源代码中,我们直接解析html即可,如果不在,我们需要调试找到请求。
右键查看源代码,发现所看到的内容直接就在源代码中,直接请求即可。
在这里插入图片描述

在这里插入图片描述
代码如下:

import re
import requests
import csv

f = open("result.csv", mode="a+", newline='')
csvwriter = csv.writer(f)

#因为每一页只有25个影片 通过更改请求url的内容来依次请求250个影片
for i in range (0, 10):
    url = 'https://movie.douban.com/top250?start={}'.format(i*25)
    _headers = {
        "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
    }
    ret = requests.get(url, headers = _headers)
    page_content = ret.text

    # 解析数据
    obj = re.compile(r'<li>.*?<div class="item">.*?<span class="title">(?P<name>.*?)</span>'
                     r'.*?<p class="">.*?<br>(?P<year>.*?)&nbsp'
                     r'.*?<span class="rating_num" property="v:average">(?P<score>.*?)</span>'
                     r'.*?<span>(?P<number>.*?)人评价</span>', re.S)
    #开始匹配
    ret = obj.finditer(page_content)

    for it in ret:
        dic = it.groupdict()
        dic['year'] = dic['year'].strip()
        csvwriter.writerow(dic.values())
f.close()
print('Over')

最后读取了影片名 上映日期 评分 参与评分人数,并写入csv文件中。效果如下:
在这里插入图片描述


版权声明:本文为ProgramVAE原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。