【爬虫学习】1、利用get方法对豆瓣电影数据进行爬取

♥️作者:白日参商
🤵‍♂️个人主页:白日参商主页
♥️坚持分析平时学习到的项目以及学习到的软件开发知识,和大家一起努力呀!!!
🎈🎈加油! 加油! 加油! 加油
🎈欢迎评论 💬点赞👍🏻 收藏 📂加关注+!

学习目标:能够利用python对一些科研中需要用到的数据进行爬取


一、步骤总览

1、导入python库
2、获取豆瓣电影的第一页的数据 并保存起来
3、请求对象的定制
4、模拟浏览器向服务器发送请求
5、获取响应的数据
6、把数据下载到本地


二、代码示例

import urllib.request
#  get请求
# 1、获取豆瓣电影的第一页的数据 并保存起来
url = 'https://movie.douban.com/j/chart/top_list?type=5&interval_id=100%3A90&action=&start=0&limit=20'
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'
}
# 2、请求对象的定制
request = urllib.request.Request(url=url,headers=headers)# 3、模拟浏览器向服务器发送请求
response = urllib.request.urlopen(request)# 4、获取响应的数据
content = response.read().decode('utf-8')# 5、把数据下载到本地
# open方法默认使用的是gbk的编码,如果我们想保存汉字,那么需要在open方法中指定编码格式为utf-8,下面有两种方法可以自己选择
# 方法一
# fp = open('douban.json','w',encoding='utf-8')
# fp.write(content)
# 方法二
with open('douban1.json','w',encoding='utf-8') as fp:fp.write(content)

三、通俗代码解读:

当拿到整个代码的时候,首先是导入请求包import urllib.request,紧接着是url,URL就是我们要读取的数据的地址接口,下面以chrome为例:
在这里插入图片描述
接下来就是User-Agent的获取,直接在上面那演示的位置就可以找到:
在这里插入图片描述
拿到自己的上面两步以后,就是对请求对象的定制了:

# 2、请求对象的定制
request = urllib.request.Request(url=url,headers=headers)# 3、模拟浏览器向服务器发送请求
response = urllib.request.urlopen(request)# 4、获取响应的数据
content = response.read().decode('utf-8')

因为爬取的数据是json格式的,我们需要创建一个json文件并保存我们爬取的内容:

# 5、把数据下载到本地
# open方法默认使用的是gbk的编码,如果我们想保存汉字,那么需要在open方法中指定编码格式为utf-8,下面有两种方法可以自己选择
# 方法一
# fp = open('douban.json','w',encoding='utf-8')
# fp.write(content)
# 方法二
with open('douban1.json','w',encoding='utf-8') as fp:fp.write(content)
  • CSDN 技术博客 1 篇
    ♥️作者:白日参商
    🤵‍♂️个人主页:白日参商主页
    ♥️坚持分析平时学习到的项目以及学习到的软件开发知识,和大家一起努力呀!!!
    🎈🎈加油! 加油! 加油! 加油
    🎈欢迎评论 💬点赞👍🏻 收藏 📂加关注+!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/14619.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

elk高并发架构

1.前言 普通的elk架构只适合数据量小的情景,而且也不安全,在瞬时数据量大的情况下可能会导致logstash崩溃,从而导致数据的丢失,对于数据安全有较高要求,可以在架构中加入消息队列,既可以防止瞬时的大流量并…

vue 进阶---动态组件 插槽 自定义指令

目录 动态组件 如何实现动态组件渲染 使用 keep-alive 保持状态 keep-alive 对应的生命周期函数 keep-alive 的 include 属性和exclude属性 插槽 插槽的基础用法 具名插槽 作用域插槽 自定义指令 自定义指令的分类 私有自定义指令 全局自定义指令 了解 eslint 插件…

B/S版手术麻醉系统源码,基于php、mysql和vue2开发

手术麻醉系统是一套以数字形式与医院信息系统(如HIS、EMR、LIS、PACS等)和医疗设备等软、硬件集成并获取围手术期相关信息的计算机系统,其核心是对围手术期患者信息自动采集、储存、分析并呈现。该系统通过整合围手术期中病人信息、人员信息、…

IPV6使用越来越广,您会配置吗?

前面针对IPv6写过一篇文章,但是好多网友反映没有读懂,今天再给大家把内容浓缩一下,教给大家如何配置。 IPV6的推出主要是为了解决地址空间的不足,从而进一步的促进互联网的发展。IPV6地址空间大到惊人,有人比喻地球上…

时间序列预测 | Matlab灰狼算法(GWO)优化极限梯度提升树XGBoost时间序列预测,GWO-XGBoost时间序列预测模型,单列数据输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 时间序列预测 | Matlab灰狼算法(GWO)优化极限梯度提升树XGBoost时间序列预测,GWO-XGBoost时间序列预测模型,单列数据输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及…

Spring boot +React集成ChatGPT 智能AI

在这里插入代码片import {Button, Input, Radio,Alert,Modal } from antd; import Marquee from react-fast-marquee; import {ChromeOutlined,WifiOutlined,AimOutlined } from ant-design/icons; import React, {useEffect, useState, useRef} from react; import chatgptPn…

服务器数据恢复-raid10重建为raid6的数据恢复案例

服务器故障: 一台IBM V7000存储中的vdisk丢失,Solaris操作系统中的部署的Oracle数据库不可用。经过和工作人员的沟通得知故障原因:工作人员进行重建MDisk的操作,将原先的raid10重建为raid6,然后又再次重建为raid10&…

网络编程4——TCP协议的三大安全机制:三次握手四次挥手+确认应答机制+超时重传机制

文章目录 前言一、TCP协议段与机制TCP协议的特点TCP报头结构TCP协议的机制与特性 二、TCP协议的 连接管理机制 TCP建立连接:三次握手 TCP断开连接:四次挥手 三、TCP协议的 确认应答机制 四、TCP协议的 超时重传机制 总结 前言 本人是一个刚刚上路的I…

【Ubuntu学习MySQL——安装MySQL】

首先得su,然后输入密码,进入到root模式下,以下命令均在root用户模式下进行 1.在这里我们使用RPM包来安装Mysql,所以首先安装RPM包 apt install rpm2.安装完RPM包之后,检测系统是否自带安装MySQL,如果没有…

部署Git服务器

哈喽,大家好,本次为大家演示如何部署git服务器. 首先要准备gitea和phpstudy_pro phpstudy一路nest即可,可以帮你安装mysql和阿帕奇。 登录127.0.0.1:3000注册gitea即可。 如何在上传公钥的时候出现500的错误,加入这句便可解决…

vue运行background-removal-js库

前段时间在github上有个能在浏览器扣图的js库蛮火https://github.com/imgly/background-removal-js 演示网站:demo 不仅仅能将人物主体扣出,还能处理动物、植物等 最近我萌发出在vue中运行这个库的想法,记录一下 下载、配置 首先当然是通…

【专题速递】音频生成、TTS和AIGC在音乐上的运用

// AIGC的发展为音频带来了什么?AIGC如何赋能音乐创作?如何识别虚假音频?TTS可以在哪种场景下解决特定问题?7月29日LiveVideoStackCon2023上海站音频新体验专场,为您解答。 音频新体验 随着多媒体和通信网络技术的不…