day02 爬豆瓣电影top250

时间:2022-10-29 12:24:42

requests请求库爬取豆瓣电影信息
-请求url
https://movie.douban.com/top250
-请求方式
GET
-请求头
user-agent
cookies
源代码
import requests
import re

# 获取url
def get_page(url):
    response = requests.get(url)
    return response

# 获取正则后的标签 re.S是匹配所有的字符包括空格
def parse_index(html):
    # 使用re正则匹配出图片地址、评分、评论人数
    movie_list = re.findall(
        '<div class="item">.*?<em class="">(.*?)</em>.*?<a href="(.*?)">.*?<span class="title">(.*?)</span>.*?导演: (.*?)主演: (.*?)<br>(.*?)</p>.*?<span class="rating_num".*?>(.*?)</span>.*?<span>(.*?)人评价</span>.*?<span class="inq">(.*?)</span>',
        html,
        re.S)

    return movie_list

# 文本模式实现数据持久化
def save_data(movie):
    top,m_url,name,daoyan,actor,year_type,point,commit,desc=movie
    year_type=year_type.strip('\n')
    data = f'''
            =======欢迎官人观赏==========
                   电影排名:{top}
                   电影url:{m_url}
                   电影名称:{name}
                   电影导演:{daoyan}
                   电影主演:{actor}
                   年份类型:{year_type}
                   电影评分:{point}
                   电影评论:{commit}
                   电影简介:{desc}
            =============================
           '''
    print(data)
    with open('douban_top250.txt', 'a', encoding='utf-8') as f:
        f.write(data)
    print(f'电影:{name}写入成功...')

# 启动爬虫函数
if __name__ == '__main__':
    # 初始页数
    num = 0
    for line in range(10):
         # 豆瓣电影网爬取数据规律
         url = f'https://movie.douban.com/top250?start={num}s&filter='
         num+= 25
         # 爬虫三部曲
         # 1.爬取资源
         # "https://movie.douban.com/top250"
         res = get_page(url)

         # 2.解析资源
         movie_list = parse_index(res.text)

         # 3.数据持久化
         for movie in movie_list:
             save_data(movie)