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

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

欢迎关注🥰:

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 retry: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版)》(明日科技)【简介_书评_在线阅读】 - 当当图书 

《Python从入门到精通(第3版)》从初学者角度出发,通过通俗易懂的语言、丰富 多彩的实例,详细介绍了使用Python进行程序开发应该掌握的各方面技术。全书共分27章,包括初识Python、 Python语言基础、运算符与表达式、流程控制语句、列表和元组、字典和集合、字符串、Python中使用正则表达式函数、面向对象程序设计、模块、文件及目录操作、操作数据库、使用进程和线程、网络编程、异常处理及程序调试、Pygame游戏编程、 推箱子游戏、网络爬虫开发、火车票分析助手、数据可视化、京东电商销售数据分析与预测、Web编程、Flask框架、e起去 旅行网站、Python自 动化办公、Al图像识别工具等内容。书中所有知识都结合具体实例进行介绍,涉及的程序代码都给出了详细的注释,读者可轻松领会Python程序开发的精髓,快速提升开发技能。
 

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

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

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

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

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

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

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

相关文章

Jmeter 性能 —— Linux下压测错误排查+解决!

排除错误日志一般方法: 查看脚本执行错误日志->接口返回异常查看服务器日志,检查是否是参数导致的问题或代码逻辑问题->出现网络相关,先优化压测及网络配置再压测 1、Linux下性能压测报错,查看错误日志 在压测机的Jmeter…

C++--右值引用

一.左右值 在C中,有左值和右值的概念。 左值(lvalue)表示一个可以获取其地址的表达式,或者说是一个具名的对象或函数。它可以在等号左边出现,也可以在等号右边出现。例如: int x 10; // x 是一个左值 i…

在微信公众号上怎么做报名链接_让你的活动报名与众不同

微信公众号报名链接:引领潮流,让你的活动报名与众不同 在这个信息爆炸的时代,微信早已成为我们生活中不可或缺的一部分。而微信公众号,更是成为了企业和个人传递信息、推广品牌的重要平台。如何在众多的微信公众号中脱颖而出&…

OceanBase集群扩缩容

​ OceanBase 数据库采用 Shared-Nothing 架构,各个节点之间完全对等,每个节点都有自己的 SQL 引擎、存储引擎、事务引擎,天然支持多租户,租户间资源、数据隔离,集群运行的最小资源单元是Unit,每个租户在每…

(学习日记)2024.01.19

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

1434. 数池塘(四方向)-深度优先搜索-DFS

代码&#xff1a; #include<iostream> using namespace std; char a[200][200]; int fx[4]{0,1,0,-1}; int fy[4]{1,0,-1,0}; int k0; int n,m; void dfs(int x,int y){a[x][y].;int tx,ty;for(int i0;i<4;i){txxfx[i];tyyfy[i];if(tx>1&&tx<n&&am…

面试题:40亿个QQ号,限制1G内存,如何去重?

文章目录 概要什么是BitMap&#xff1f;有什么用&#xff1f;什么是布隆过滤器&#xff0c;实现原理是什么&#xff1f;应用场景如何使用 概要 40亿个unsigned int&#xff0c;如果直接用内存存储的话&#xff0c;需要&#xff1a; 4*4000000000 /1024/1024/1024 14.9G &…

超声波清洗机清洗眼镜有用吗?值得入手洗眼镜超声波清洗机推荐

眼镜党朋友长时间佩戴眼镜避免不了受到灰尘、污垢和细菌的侵扰&#xff0c;不清洗的话我们的视线就会被有所阻碍&#xff0c;为了保证我们眼镜的干净同时也是为了注意个人卫生&#xff0c;建议我们定期清洗一下眼镜&#xff0c;给眼镜洗个澡顺便消消毒&#xff0c;从一开始用水…

ACM题解Day1|1.Accurate Movement ,2.Help the Support Lady, 3.Absolute Game

1.Accurate Movement 思路 : 本题为模拟题主要是模拟方块的移动,其中 以两木块的最右端做为记录点. 先挪动a, 每次a块只能挪到和b块相同的位置, b块每次最多挪动(b-a).为什么因为有限制挡板然后俩木块要不能同时移动只能移动一一个 #include<bits/stdc.h> using namespac…

使用.NET API 中的 EventCounters进行指标监控

写在前面 为了实现轻量级、跨平台、准确实时的性能指标收集&#xff0c;从 .NET Core 3.0 版本开始引入 EventCounters API。除了 .NET 运行时提供的 EventCounters 外&#xff0c;还可以实现自定义的 EventCounters。 以便跟踪各种指标&#xff0c;EventCounters 作为 EventS…

select子句简单查询

Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645 目录 数据查询 起别名 连接 ​编辑 去重 ​编辑 另外补充几个不常用的命令 如果要进行查询,那么需要使用数据操纵语言&#xff08;Data Manipulation Language&#xff0c;DML&am…

【C++记忆站】auto关键字(C++11)

auto关键字 1.auto简介 早期C/C中auto的含义是&#xff1a;使用auto修饰的变量&#xff0c;是具有自动存储器的局部变量 C11中&#xff0c;标准委员会赋予了auto全新的含义即&#xff1a;auto不再是一个存储类型指示符&#xff0c;而是作为一个新的类型指示符来指示编译器&…