爬取豆瓣TOP250电影信息

'''
爬取豆瓣TOP250电影信息

    第1页:
        https://movie.douban.com/top250?start=0&filter=

    ...

    第9页:
        https://movie.douban.com/top250?start=200&filter=

    第10页:
        https://movie.douban.com/top250?start=225&filter=

爬蟲四部原理:
    1.发送请求: requests
    2.获取响应数据: 对方机器直接返回的
    3.解析并提取想要的数据: re
    4.保存提取后的数据: with open()

爬蟲三部曲:
    1.发送请求
    2.解析数据
    3.保存数据


# 往10个链接发送请求获取响应数据
    - requests模块 ---》 请求库
'''
import requests
import re


# 爬蟲三部曲:
# 1.发送请求
def get_page(url):
    response = requests.get(url)
    # response.content  # 获取二进制流数据,比如图片、视频、音频
    # response.text  # 获取响应文本,比如html代码
    return response


# 2.解析数据
# 伪代码:
# response = get_page('url地址')
# parser_page(response.text)
def parser_page(text):  # response.text
    # re.findall('正则表达式', '过滤的文本')
    res_list = re.findall(
        '<div class="item">.*?<a href="(.*?)">.*?<span class="title">(.*?)</span>.*?<span class="rating_num".*?>(.*?)</span>.*?<span>(.*?)人评价',
        text,
        re.S)

    for movie_tuple in res_list:
        # print(movie_tuple)
        yield movie_tuple


# 3.保存数据
# 伪代码:
# res_list = parser_page(text)
# save_data(res_list)
def save_data(res_list_iter):
    with open('douban.txt', 'a', encoding='utf-8') as f:
        for movie_tuple in res_list_iter:
            movie_url, movie_name, movie_point, movie_num = movie_tuple
            # 写入文件前的模样
            str1 = f'''
            电影地址: {movie_url} 
            电影名字: {movie_name} 
            电影评分: {movie_point} 
            评价人数: {movie_num} 
            '''
            f.write(str1)


# 获取10个链接
n = 0
for line in range(10):
    url = f'https://movie.douban.com/top250?start={n}&filter='
    n += 25
    print(url)

    response = get_page(url)
    res_list_iter = parser_page(response.text)
    # print(res_list_iter)
    save_data(res_list_iter)

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值