[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.hqwc.cn/news/410539.html

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

相关文章

C++力扣题目40--组合总和II

力扣题目链接(opens new window) 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次。 说明: 所有数字(包括目标数)都是…

k8s集群环境搭建以及插件安装

前置条件 终端工具MobaXterm很好用。 1、虚拟机三台(ip按自己的网络环境相应配置)(master/node) 节点ipk8s-master192.168.200.150k8s-node1192.168.200.151k8s-node2192.168.200.152 2、关闭防火墙(master/node) systemctl stop firewalld systemc…

推荐系统模型(一) DFN 详解 Deep Feedback Network for Recommendation

背景 在大多数的推荐系统中,往往注重于隐式正反馈(例如:点击),而忽略掉用户的其他行为(例如大多数CTR模型只考虑用户的喜欢,而忽略了不喜欢)。腾讯在Deep Feedback Network for Recommendation 一文中,提出了一个新颖…

HarmonyOS应用开发者高级认证试题库(鸿蒙)

目录 考试链接: 流程: 选择: 判断 单选 多选 考试链接: 华为开发者学堂华为开发者学堂https://developer.huawei.com/consumer/cn/training/dev-certification/a617e0d3bc144624864a04edb951f6c4 流程: 先进行…

基于YOLOv8深度学习的苹果叶片病害智能诊断系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

Mysql流程控制函数

1概述 Mysql中的流程控制函数非常重要,可以根据不同的条件,执行不同的流程转换,可以在SQL语句中实现不同的条件选择。MySQL中的流程处理函数主要包括IF()、IFNULL()和CASE()函数。 1.1 IF函数 SELECT IF(1 > 0, 正确, 错误);1.2 IFNULL…

Web Animation API

工作中经常会遇到需要动画的场景,连贯动画都是用CSS实现,,但是如果遇到需要用户互动介入的动画,那纯CSS很比较吃力,也不是不能实现,需要动态修改CSS变量,而且动画容易被JS代码阻塞,导…

flink1.14.5使用CDH6.3.2的yarn提交作业

使用CDH6.3.2安装了hadoop集群,但是CDH不支持flink的安装,网上有CDH集成flink的文章,大都比较麻烦;但其实我们只需要把flink的作业提交到yarn集群即可,接下来以CDH yarn为基础,flink on yarn模式的配置步骤…

JS-var 、let 、 const使用介绍

变量声明介绍 在我们日常开发用,变量声明有三个 var、 let 和 const,我们应该用那个呢? 首先var 先排除,老派写法,问题很多,可以淘汰掉…let or const ?建议: const 优先,尽量使…

JVM运行时数据区(下篇)

紧接上篇:JVM运行时数据区(上篇)-CSDN博客 堆 一般Java程序中堆内存是空间最大的一块内存区域。创建出来的对象都存在于堆上。 栈上的局部变量表中,可以存放堆上对象的引用。静态变量也可以存放堆对象的引用,通过静态…

SC20-EVB ubuntu14.04 Andriod 5.1 SDK编译下载

1.ubuntu14.04安装环境配置 vi /etc/profile to add export JAVA_HOME/usr/lib/jvm/java-7-openjdk-amd64 export JRE_HOME J A V A H O M E / j r e e x p o r t C L A S S P A T H . : {JAVA_HOME}/jre export CLASSPATH.: JAVAH​OME/jreexportCLASSPATH.:{JAVA_HOME}/lib…

Node.js安装

bibi视频 node.js安装 1去官网下载对应的软件 也可以直接下载我分享的安装包 链接:https://pan.baidu.com/s/1Q_Tfcn4f-J1y07Ce2SsMXw?pwdf11n 提取码:f11n –来自百度网盘超级会员V3的分享 2选择安装目录 3验证NodeJS环境变量\ NodeJS 安装完毕后…