爬虫入门学习(二)——response对象

news2024/11/17 20:34:24

大家好!我是码银,代码的,银子的🥰

欢迎关注🥰:

CSDN:码银

公众号:码银学编程

前言 

在本篇文章,我们继续讨论request模块。从上一节(爬虫学习(1)--requests模块的使用-CSDN博客)中我们可以知道requests.get() 是 Python 的 requests 库中的一个方法,用于发送 HTTP GET 请求。那么使用requests.get()之后传回的数据类型是什么呢?

Response对象,下面就让我们从认识一下Response对象开始学习吧😆!

正文

response对象

在 requests 库中,response 对象包含了服务器对请求的响应的所有信息。以下是一些常用的 response 对象属性:

  • response.status_code:HTTP状态码,例如200、404等。
  • response.headers:响应头,是一个字典,包含了服务器返回的所有头部信息。
  • response.text:响应内容,以字符串形式返回。
  • response.json():如果响应内容是JSON格式,可以使用这个方法将其解析为Python对象。
  • response.content:响应内容,以字节形式返回。
  • response.cookies:响应的cookies,是一个字典,包含了所有的cookies。
  • response.url:响应的URL,即请求的URL。

以上是 requests 库中 response 对象的一些常用属性。更多详细的信息可以在 requests 库的文档中找到。

1、查看访问网页是否成功 

import requests	# 导入requests模块
response = requests.get('https://blog.csdn.net/weixin_53197693/article/details/131499857')
#response = requests.get('https://requests.readthedocs.io/projects/cn/zh-cn/latest/%E3%80%82')
if response.status_code == requests.codes.ok:
    print("取得网页内容成功")
else:
    print("取得网页内容失败")
print("HTTP状态码:",response.status_code)

访问成功截图: 

 访问失败截图:

2、取得网页内容

import requests	# 导入requests模块
response = requests.get('https://requests.readthedocs.io/en/latest/')
if response.status_code == requests.codes.ok:
    print("取得网页内容成功")
else:
    print("取得网页内容失败")
print("HTTP状态码:",response.status_code)
print("网页的内容大小是:",len(response.text))
print(response.text)#输出网页源代码

 这段代码的功能是发送一个HTTP GET请求到指定的URL,并获取返回的网页内容。然后,它会检查返回的HTTP状态码,如果状态码是200(表示请求成功),则打印“取得网页内容成功”,否则打印“取得网页内容失败”。接下来,它打印HTTP状态码和网页内容的长度(以字节为单位)。最后,它打印出整个网页的内容。 

搜索网页特定内容

 获取内容,然后根据用户输入的字符串进行搜索。如果搜索成功,它会输出“搜寻成功”,否则输出“搜寻失败”。接着,它会使用正则表达式对搜索结果进行进一步处理,统计用户输入的字符串在网页内容中出现的次数,并输出这个次数。

import requests	# 导入requests模块
import re
response = requests.get('https://requests.readthedocs.io/en/latest/')
if response.status_code == requests.codes.ok:
    a=input("请输入搜寻的字符串:")
    if a in response.text:
        print("搜寻成功")
    else:
        print("搜寻失败")
name = re.findall(a, response.text)
if name !=None:
    print("%s出现%d次" % (a, len(name)))
else:
    print("%s出现0次" % a)

 

 出错的异常处理

使用 try/except 块来处理网络请求可能出现的异常是一个很好的做法。这样,如果请求失败,程序不会崩溃,而是会捕获异常并给出相应的错误信息。 

import requests  # 导入requests模块
import re

try:
    response = requests.get('https://requests.readthedocs.io/en/latest/')
    response.raise_for_status()  # 如果响应状态码不是200,主动抛出HTTPError异常

    a = input("请输入搜寻的字符串:")
    if a in response.text:
        print("搜寻成功")
    else:
        print("搜寻失败")

    name = re.findall(re.escape(a), response.text)  # 使用re.escape()来确保用户输入被当作普通字符串处理
    if name:
        print("%s出现%d次" % (a, len(name)))
    else:
        print("%s出现0次" % a)

except requests.exceptions.RequestException as err:
    # 捕获所有requests可能抛出的异常
    print("网络请求出错:", err)


except Exception as err:
    # 捕获其他所有未被上述except捕获的异常
    print("发生未知错误:", err)

小结

本篇文章中主要介绍了response对象的一些属性、如何搜索网页特定内容和使用try/except处理网络请求可能出现的异常。

日日行,不怕千万里;常常做,不怕千万事。——金樱

推荐一本好书 

购买链接:《Python从入门到精通(第3版)》(明日科技)【简介_书评_在线阅读】 - 当当图书 

在视频生成即将迎来技术和应用大爆发之际,为了帮助企业和广大从业者掌握技术前沿,把握时代机遇,机器之心AI论坛就将国内的视频生成技术力量齐聚一堂,共同分享国内顶尖力量的技术突破和应用实践。

论坛将于2024.01.20北京举办,现场汇聚领域内专家和一线开发者,期待能为视频生成领域呈现一场高质量、高水平的线下交流活动。

本次活动大咖云集,分享内容中的很多模型/工具都是首次对外进行技术拆解与分享。快来报名,抓住站在浪潮之巅的机会吧。

了解国内视频生成的最新技术进展和应用实践,机器之心 AI 技术论坛将会是一次不错的机会。

活动日程(直达链接:https://hdxu.cn/RmNWu)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】异常机制

异常 一、传统的处理错误的方式二、C异常概念三、异常的使用1. 异常的抛出和捕获(1)异常的抛出和匹配原则(2)在函数调用链中异常栈展开匹配原则 2. 异常的重新抛出3. 异常安全4. 异常规范 四、自定义异常体系五、C 标准库的异常体…

编曲混音FL Studio21.2对电脑有什么配置要求

FL Studio 21是一款非常流行的音乐制作软件,它可以帮助音乐人和制作人创作出高质量的音乐作品。然而,为了保证软件的稳定性和流畅性,用户需要知道FL Studio 21对电脑的配置要求。本文将介绍FL Studio 21的配置要求,以帮助用户选择…

详解Java之Spring框架中事务管理的艺术

第1章:引言 大家好,我是小黑,咱们今天聊聊Spring框架中的事务管理。不管是开发小型应用还是大型企业级应用,事务管理都是个不可避免的话题。那么,为什么事务管理这么重要呢?假设在银行系统中转账时&#x…

Java实现海南旅游景点推荐系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户端2.2 管理员端 三、系统展示四、核心代码4.1 随机景点推荐4.2 景点评价4.3 协同推荐算法4.4 网站登录4.5 查询景点美食 五、免责说明 一、摘要 1.1 项目介绍 基于VueSpringBootMySQL的海南旅游推荐系统&#xff…

远程开发之vscode端口转发

远程开发之vscode端口转发 涉及的软件forwarded port 通过端口转发,实现在本地电脑上访问远程服务器上的内网的服务。 涉及的软件 vscode、ssh forwarded port 在ports界面中的port字段,填需要转发的IP:PORT,即可转发远程服务器中的内网端…

SSH镜像、systemctl镜像、nginx镜像、tomcat镜像

目录 一、SSH镜像 二、systemctl镜像 三、nginx镜像 四、tomcat镜像 五、mysql镜像 一、SSH镜像 1、开启ip转发功能 vim /etc/sysctl.conf net.ipv4.ip_forward 1sysctl -psystemctl restart docker 2、 cd /opt/sshd/vim Dockerfile 3、生成镜像 4、启动容器并修改ro…

AirServer2024官方最新版免费下载

AirServer官方版是一款使用方便的投屏软件,在教室,会议室以及游戏中极为方便。AirServer官方版支持IOS、Android、Windows、mac、Chromebook等多种设备,使用AirServer不需要其他的设备即可完成投屏操作,相比其他投屏软件&#xff…

星图地球——Landsat5_C2_TOA_T1数据集

简介 Landsat 5是美国陆地卫星系列(Landsat)的第五颗卫星,于1984年3月1日发射,2011年11月停止工作。16天可覆盖全球范围一次。Landsat5_C2_TOA数据集是由Collection2 level1数据通过MTL文件计算得到的TOA反射率产品。数据集的空间…

Spring Boot 中实现文件上传、下载、删除功能

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…

VUE好看的个人简历模板

文章目录 1.设计来源1.1 首页界面1.2 关于我界面1.3 我的资历界面1.4 项目经验界面1.5 我的技能界面1.6 联系我界面 2.效果和源码2.1 动态效果2.2 源码目录结构 源码下载 作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/article/details/…

【python】12.字符串和正则表达式

使用正则表达式 正则表达式相关知识 在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要,正则表达式就是用于描述这些规则的工具,换句话说正则表达式是一种工具,它定义了字符串的匹配模式(…

网站万词霸屏推广系统源码:实现关键词推广,轻松提高关键词排名,带完整的安装部署教程

现如今,互联网的快速发展,网站推广成为企业网络营销的重要手段。而关键词排名作为网站推广的关键因素,一直备受关注。罗峰给大家分享一款网站万词霸屏推广系统源码,该系统可实现关键词推广,有效提高关键词排名&#xf…

Github 2024-01-15开源项目周报Top14

根据Github Trendings的统计,本周(2024-01-15统计)共有14个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目6TypeScript项目3Jupyter Notebook项目3Java项目2Kotlin项目1C#项目1C项目1 Microsoft PowerToys:…

实现STM32烧写程序-(2)Flash Loader 发送指令解析

简介 实现STM32烧写程序-(1)获取Bootloader版本信息, 看了数据手册之后可以了解到指令的发送, 但实现之前可以使用现成的工具进行测试和查看他的收发情况; Usart Bootloader 指令列表 Usart Bootloader 指令列表 应答ACK | NACK ACK(0x79) 表示 正常答复, NACK(0x…

mybatis中的驼峰转换

一、有啥用 开发时常用对象来存储从数据库中的记录,开启驼峰转化即可实现数据库字段(通常使用_下划线连接)与对象属性的对应,如数据库中的first_name字段会转化为firstName与对象中的firstName属性对应。 二、配置 三、相关报错 数据库字段与对象属性…

我为什么要写RocketMQ消息中间件实战派上下册这本书?

我与RocketMQ结识于2018年,那个时候RocketMQ还不是Apache的顶级项目,并且我还在自己的公司做过RocketMQ的技术分享,并且它的布道和推广,还是在之前的首席架构师的带领下去做的,并且之前有一个技术神经质的人&#xff0…

广告投放场景中ABtest分析的评价、优化和决策建议

写在开头 在当今数字化的商业环境中,广告投放是企业获取客户和推动销售的重要手段。然而,随着市场竞争的加剧,制定有效的广告策略变得愈发复杂。在这个背景下,AB测试成为了广告主们不可或缺的工具之一。本文将深入探讨广告投放中…

swing快速入门(四十四)拖动、编辑JTree结点

注释很详细,直接上代码 新增内容(源码细节知识点巨多,建议细看) 1.设置JTree可编辑 2.使用JTree关联的数据模型实现节点的增删改 3.鼠标拖动节点事件设计及处理方法 4.手动刷新视图与自动刷新的方法区别 5.自定位节点视图方法 源码…

zepplin记录1

zepplin记录1 文章目录 zepplin记录1前言一、配置python环境二、测试可用性1.配置interpreter2.测试代码 总结 前言 Apache Zeppelin是一个开源的数据分析和可视化的交互式笔记本,类似于Jupyter Notebook。它支持多种编程语言(如Scala、Python、R、SQL等…

多线程——阻塞队列

什么是阻塞队列 相比于一般的队列,有两个特点 1.线程安全 2.带有阻塞功能 1)队伍为空时,出队列就会出现阻塞,阻塞到其他线程入队列为止 2)队伍为满时,入队列就会出现阻塞,阻塞到其他线程出队列…