当前位置: 首页 > article >正文

python(自学10-2)获取豆瓣页面 下载成json格式

import urllib.parse
import urllib.request


# 定义第一个方法 定义page路径
def create_request(page):
    # 前边一样不变的路径
    base_url = "https://movie.douban.com/top250?"

    # 定义后边不太一样的路径
    data = {
        'start': (page - 1) * 10,  # 定义页数
        'limit': 25  # 每页个数
    }

    # 转换data路径编码
    data = urllib.parse.urlencode(data)

    # 拼接打印路径  base_url +data 成一个完整路径
    url = base_url + data
    print(url)

    # 请求头
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36 Edg/116.0.0.0"}

    # 防止反扒 特定
    request = urllib.request.Request(url=url, headers=headers)
    # 返回 request
    return request


# # 定义第二个方法 定义get_conten  请求数据
def get_conten(request):
    # 模拟服务器发送请求
    response = urllib.request.urlopen(request)
    # 读取html页面数据 获取相应源码
    content = response.read().decode('utf_8')
    return content


# # 定义第二个方法 定义down_load 下载
def down_load(page, content):  # 获取 page页码
    # 拼接下载路径  以及下载格式
    with open('doban' + str(page) + '.json', 'w', encoding='utf-8') as fp:
        fp.write(content)


if __name__ == '__main__':
    start_page = int(input('开始页码'))
    end_page = int(input('结束页码'))
    # 遍历
    for page in range(start_page, end_page + 1):
        # request =  定义page路径
        request = create_request(page)
        # content =  定义请求方法
        content = get_conten(request)
        # 下载
        down_load(page, content)
#

 


http://www.kler.cn/a/534512.html

相关文章:

  • Unity UI Default Shader分析
  • react18新增了哪些特性
  • 【multi-agent-system】ubuntu24.04 安装uv python包管理器及安装依赖
  • Mac mini m4本地跑大模型(ollama + llama + ComfyUI + Stable Diffusion | flux)
  • 全栈开发:使用.NET Core WebAPI构建前后端分离的核心技巧(二)
  • PHP Composer:高效依赖管理工具详解
  • 7.PPT:“中国梦”学习实践活动【20】
  • MySQL常见的存储引擎和区别
  • ASP.NET Core与EF Core的集成
  • 系留无人机通信中继、空地组网技术详解
  • Spring ApplicationContext接口及其实现类的作用
  • React中为每个列表项显示多个DOM节点的解决方案
  • GS论文阅读--Mini-Splatting
  • vscode+Cmake配置c++轻量级环境
  • Java进阶13 线程池
  • Racecar Gym 代码
  • 深入解析:如何利用 Python 爬虫获取商品销量详情
  • 系统学习算法:专题九 穷举vs暴搜vs深搜vs回溯vs剪枝
  • 畅游Diffusion数字人(15):详细解读字节跳动最新论文——音频+姿态控制人类视频生成OmniHuman-1
  • Vue WebSocket简单应用 ws
  • openEuler系统添加静态路由的方法
  • 【华为OD-E卷 - 114 找最小数 100分(python、java、c++、js、c)】
  • 算法日记11:SC63(离散化)
  • 106,【6】 buuctf web [SUCTF 2019]CheckIn
  • Unity-向量运算及归一化
  • 单例设计模式(Java)