爬虫之requests + json爬取电影数据

本文介绍了一个使用Python实现的豆瓣电影数据爬虫项目,通过解析URL规律,自动化抓取并保存数据至本地。从构造初始URL到提取、保存数据,详细展示了爬虫的完整流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import requests
import json
from parse import parse_url


class DoubanSpider(object):
    # 构造初始url
    def __init__(self):
        # 注意,此url是已经删除掉callback参数的,因为这里要获取json数据
        self.origin_url = "https://m.douban.com/rexxar/api/v2/subject_collection/tv_american/items?os=ios&for_mobile=1&start={}&count=18&loc_id=108288&_=0"

    # 提取数据
    def get_data(self, json_data):
        data_dict = json.loads(json_data)
        data_list = data_dict["subject_collection_items"]
        total = data_dict["total"]
        return data_list, total

    # 保存数据
    def save_data(self, data_list):
        with open("douban_json_data.txt", "a", encoding="utf-8") as f:
            for data in data_list:
                f.write(json.dumps(data, ensure_ascii=False))
                f.write("\n")
            print("保存成功")

    def run(self):
        # 经过分析url的规律,这里定义一个初始值,和原始初始值一样
        origin_start_num = 0
        total = 7  # 此处total的值随意定义,只要满足origin_start_num<total即可,让循环成立
        while origin_start_num < total:  # 此处total的值为什么要加18,自己认真考虑一下吧
            # 1.获取最开始的url地址
            url = self.origin_url.format(origin_start_num)
            # 2.发送请求,获取数据
            json_data = parse_url(url)
            # 3.提取想要保存的数据
            data_list, total = self.get_data(json_data)
            # 4.保存数据
            self.save_data(data_list)
            # 根据分析url得知,后一次请求会在前一次的基础上start会加18
            origin_start_num += 18
            # 5.重复执行2-4步骤, 要使用循环


if __name__ == '__main__':
    doubanspider = DoubanSpider()
    doubanspider.run()

爬取数据其实最重要的是要找到自己要爬取数据url的规律,分析规律,此处只是将数据保存在了txt文件中,如果想要保存数据库,可以修改保存部分,后续会将数据保存到mongo中,正好回顾一下mongo数据库的使用,接下来会慢慢更新,如果对大家有帮助,请持续关注,当然,有好的建议,希望大家给与提出,感激不尽

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值