[Python练习]使用Python爬虫爬取豆瓣top250的电影的页面源码

1.安装requests第三方库

在终端中输入以下代码(直接在cmd命令提示符中,不需要打开Python)

pip install requests -i https://pypi.douban.com/simple/

从豆瓣网提供的镜像网站下载requests第三方库

pip install requests

是从国外网站下载,速度慢甚至有时候无法下载

2.导入第三方库

import requests

3.编写代码

import requestsresponse = requests.get('https://movie.douban.com/top250')
print(response.text)  # 打印返回的原始HTML

4.运行

运行代码之后,没反应,无输出结果

可以看一下返回的页面请求状态码是多少:

状态码是418,所有4开头的状态码都表示客户端错误,也就是说我们这边发送的请求存在问题。418状态码表示服务器不想响应你的请求。

但是我们的请求并没有问题。其实,这里是豆瓣在用这个状态码回应爬虫:希望服务正常的浏览器而不是爬虫程序的请求

遇到这种情况,可以绕过去的一个方法就是可以定义请求头,把程序伪装成浏览器

可以新建一个叫做headers的字典变量,请求头的User-Agent里面会给服务器提供一些客户端的信息。所以要去指定User-Agent的值

现在的问题是User-Agent的值是什么?

我们可以从浏览器发送的请求里去“抄作业”

回到浏览器,进入任何一个页面,右键,点击检查

找到“网络”或network。

刷新一下网页,这样你就能看到浏览器发出的所有http请求。随便点击一个请求,找到User-Agent

把冒号后边的信息复制下来到代码中

修改代码为:

import requestsheaders={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0'
}response = requests.get('https://movie.douban.com/top250',headers=headers)
print(response.status_code)

运行成功

现在,获取豆瓣top250的电影的页面源码:

import requestsheaders={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0'
}response = requests.get('https://movie.douban.com/top250',headers=headers)
print(response.text)

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

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

相关文章

深度学习记录--梯度消失和爆炸

梯度消失和爆炸的产生 当神经网络层数很大时&#xff0c;即很大时&#xff0c;w与1之间的大小关系会产生梯度消失与梯度爆炸的问题 当w<1时&#xff0c;会非常小&#xff0c;梯度消失 当w>1时&#xff0c;会非常大&#xff0c;梯度爆炸 解决方法 权重初始化 层数n越大…

一、Flask学习之HTML

一、Flask学习之HTML 1.运行简单页面 首先需要搭建环境&#xff1a; pip install flaskfrom flask import Flaskapp Flask(__name__)# 创建了网址 /show/info 和函数index之间的对应关系&#xff0c;以后用户在浏览器上访问/show/info&#xff0c;网站自动执行index函数 ap…

创建审批流程极简培训教程

流程审批创建指导文档 本文档适用于使用快速了解审批流程的概念&#xff0c;以钉钉流程创建为例&#xff0c;构建极简指导&#xff0c;因为很多人对于这些术语不够熟悉&#xff0c;也很难在很短的时间成为专家&#xff0c;那么使用此文档&#xff0c;很快上手。 概念澄清 需要…

跟着cherno手搓游戏引擎【8】按键和鼠标的KeyCode

自定义KeyCode 先把glfw3.h里的KeyCode的定义抄到咱这里来。 在YOTO下创建KeyCode.h: #pragma once#ifdef YT_PLATFORM_WINDOWS///从glfw3中拿的 #define YT_KEY_SPACE 32 #define YT_KEY_APOSTROPHE 39 /* */ #define YT_KEY_COMMA 44…

【深度强化学习】目前落地的挑战与前沿对策

到目前为止&#xff0c;深度强化学习最成功、最有名的应用仍然是 Atari 游戏、围棋游戏等。即使深度强化学习有很多现实中的应用&#xff0c;但其中成功的应用并不多。为什么呢&#xff1f;本文总结目前的挑战。 目录 所需的样本数量太大探索阶段代价太大超参数的影响非常大稳定…

Luckysheet类似excel的在线表格(vue)

参考文档&#xff1a;快速上手 | Luckysheet文档 一、引入 在vue项目的public文件夹下的index.html的<head>标签里面引入 <link relstylesheet hrefhttps://cdn.jsdelivr.net/npm/luckysheetlatest/dist/plugins/css/pluginsCss.css /><link relstylesheet hre…

C++PythonC# 三语言OpenCV从零开发(1):环境配置

文章目录 前言课程选择环境配置PythonC#COpenCV官网下载新建C项目测试运行Csharp版Python版 gitee仓库总结 前言 由于老王我想转机器视觉方向的上位机行业&#xff0c;我就打算开始从零学OpenCV。但是目前OpenCV有两个官方语言&#xff0c;C和Pyhont。C# 有大佬做了对应的Open…

使用 Neo4j 和 LangChain 集成非结构化知识图增强 QA

目前基于大模型的信息检索有两种方法&#xff0c;一种是基于微调的方法&#xff0c;一种是基于 RAG 的方法。 信息检索和知识提取是一个不断发展的领域&#xff0c;随着大型语言模型&#xff08;LLM&#xff09;和知识图的出现&#xff0c;这一领域发生了显着的变化&#xff0…

Docker五部曲之四:Docker Compose

文章目录 前言Compose应用程序模型Compose规范顶层属性servicenetworkvolumesconfigssecrets 环境变量.env文件environment属性主机shell中的环境变量 Profiles&#xff08;剖面&#xff09;启动剖面自动启动剖面和依赖项解析 多compose.yml文件共享与扩展构建规范构建属性 部署…

Java根据模板文件生成excel文件,同时将excel文件转换成图片

需求 需要将指定数据导出成表格样式的图片&#xff0c;如图 业务拆解 定义一个导出模板将得到的数据填入模板中&#xff0c;生成excel文件将ecxel文件转换成png格式的图片 代码实现 需要引入的依赖 <dependency><groupId>cn.hutool</groupId><artif…

[C++] opencv - Mat::convertTo函数介绍和使用场景

Mat::convertTo()函数 Converts an array to another data type with optional scaling. 该函数主要用于数据类型的相互转换。 The method converts source pixel values to the target data type. saturate_cast<> is applied at the end to avoid possible overf…

maven环境搭建(打包项目)

Maven:直观来讲就是打包写好的代码封装 Apahche 软件基金会&#xff08;非营业的组织&#xff0c;把一些开源软件维护管理起来&#xff09; maven apahce的一个开宇拿项目&#xff0c;是一个优秀的项目构建&#xff08;管理工具&#xff09; maven 管理项目的jar 以及jar与j…

uniapp 简易自定义日历

注&#xff1a;此日历是根据接口返回的日期自动对应星期的&#xff0c;返回的数据中也包含星期&#xff0c;其实就是一个div自定义&#xff0c;可根据自己需求更改&#xff1b; 1、组件代码 gy-calendar-self.vue <template><view class"calendar"><…

华为路由设备DHCPV6配置

组网需求 如果大量的企业用户IPv6地址都是手动配置&#xff0c;那么网络管理员工作量大&#xff0c;而且可管理性很差。管理员希望实现公司用户IPv6地址和网络配置参数的自动获取&#xff0c;便于统一管理&#xff0c;实现IPv6的层次布局。 图1 DHCPv6服务器组网图 配置思路 …

VLAN区域间路由详解

LAN局域网 WAN 广域网 WLAN无线局域网 VLAN:虚拟局域网 交换机和路由器&#xff0c;协同工作后&#xff0c;将原来的一个广播域&#xff0c;切分为多个&#xff0c;节省硬件成本&#xff1b; 配置思路&#xff1a; 交换机上创建vlan交换机上的各个接口划分到对应的vlan中 T…

meter报OOM错误,如何解决?

根据在之前的压测过程碰到的问题&#xff0c;今天稍微总结总结&#xff0c;以后方便自己查找。 一、单台Mac进行压测时候&#xff0c;压测客户端Jmeter启动超过2000个线程&#xff0c;Jmeter报OOM错误&#xff0c;如何解决&#xff1f; 解答&#xff1a;单台Mac配置内存为8G&…

【Android Studio】APP练手小项目——切换图片APP

本项目效果&#xff1a; 前言&#xff1a;本项目最终实现生成一个安卓APP软件&#xff0c;点击按钮可实现按钮切换图片。项目包含页面布局、功能实现的逻辑代码以及设置APP图标LOGO和自定义APP名称。 关于Android Studio的下载与安装见我的博文&#xff1a;Android Studio 最新…

IDEA新建SpringBoot工程时java版本只有17和21

解决方法&#xff1a;替换源 参考博客&#xff1a;https://www.kuazhi.com/post/712799571.html

thinkphp 可执行文件think

think 是一个可执行文件&#xff0c;位置&#xff1a;网站根目录 内容&#xff1a;1 定义项目路径 2 加载cll框架文件 shell脚本里第一行的&#xff1a;#!/usr/bin/env php 什么意思 这句#!的含义就是&#xff0c;按照环境变量PATH寻找第一个php程序来执行。 #!/usr/bin/php…

K8s(一)Pod资源——Pod介绍、创建Pod、Pod简单资源配额

目录 Pod概述 pod网络 pod存储 pod和容器对比 创建pod的方式 pod运行方式分类 Pod的创建 Pod的创建过程 通过kubectl run来创建pod 通过yaml文件创建&#xff0c;yaml文件简单写法 Pod简单操作 Pod的标签labels Pod的资源配额resource 测试 Pod概述 Kubernetes …