首页 > 其他分享 >爬虫学习(一)——requests库

爬虫学习(一)——requests库

时间:2023-08-01 11:14:54浏览次数:28  
标签:status 协议 HTTP get 爬虫 学习 requests

一、安装

cmd-->pip install requests

安装测试

>>> import requests
>>> r = requests.get("http://www.baidu.com")
>>> r.status_code
200
>>> r.text

 

二、Requests库的get()方法

r=requests.get(url)

返回一个包含服务器的资源的Response对象,构造一个向服务器请求资源的Request对象。

Response对象的属性

 

三、爬取网页的通用代码框架

“网络连接有风险,异常处理很重要”

 通用框架

 r.raise_for_status()在方法内部判断r.status_code是否等于200,不需要增加额外if语句,便于try-except异常处理

 

四、HTTP协议及Requests库方法

1.HTTP 超文本传输协议,是一个基于“请求与响应”模式的、无状态的应用层协议。

请求与响应:用户发出请求,服务器作出响应。无状态指的是第一次与第二次请求之间无关联。应用层协议指的是该协议工作在TCP协议之上。

HTTP协议采用URL作为定位网络资源的标识。URL:http://IP

 

五、网络爬虫的限制

·来源审查:判断User-Agent进行限制

检查来访HTTP协议头的User-Agent域,只响应浏览器或友好爬虫的访问。

·发布公告:Robots协议(robots.txt)

告知所有爬虫网站的爬取策略,要求爬虫遵守

 

资源来自中国大学MOOC——Python网络爬虫与信息提取

标签:status,协议,HTTP,get,爬虫,学习,requests
From: https://www.cnblogs.com/maimai-new/p/17570740.html

相关文章

  • 你是一个资深API接口爬虫程序员,现在需要你介绍一下如何通过商品id来获取商品数据并读
    获取商品数据通常需要使用API接口,根据接口文档中的说明传递商品id参数,并使用相应的请求方式(通常为GET请求)向API服务器发送请求即可。以下是一个获取商品数据的示例请求:首先打开API接口文档,找到获取商品数据的API接口。例如:https://api.xxx.com/products/{product_id}API文档中会说......
  • 深度学习TensorFlow和CUDA、cudnn、Pytorch以及英伟达显卡对应版本对照表
    一、TensorFlow对应版本对照表版本Python版本编译器cuDNNCUDAtensorflow-2.9.03.7-3.10 8.111.2tensorflow-2.8.03.7-3.10 8.111.2tensorflow-2.7.03.7-3.9 8.111.2tensorflow-2.6.03.6-3.9GCC7.3.18.111.2tensorflow-2.5.03.6-3.9GCC......
  • git学习笔记(十一):Feature分支
    新旧更迭,不辞旧来迎新。每添加一个新功能,最好新建一个feature分支在上边开发,完成后合并,最后删除这一分支。所以正常操作就是新建分支,进入新分支,编写代码,提交代码,切回主分支,准备合并。如果忽然这个功能不需要了,要如何销毁这一分支呢?直接使用gitbranch-dfeaturea(featurea......
  • ugui学习 - 自己实现InputField鼠标点击调整光标位置,拖拽修改选中区域
    效果 代码usingUnityEngine;usingUnityEngine.EventSystems;usingUnityEngine.UI;publicclassMyInputField_CaretDragOp:MyInputField_TextSelect,IDragHandler,IPointerDownHandler{publicvoidOnPointerDown(PointerEventDataeventData){......
  • ugui学习 - 自己实现InputField的文本选中
    效果 代码把光标闪烁拿掉了usingUnityEngine;usingUnityEngine.UI;[DisallowMultipleComponent][RequireComponent(typeof(CanvasRenderer))][RequireComponent(typeof(RectTransform))]publicclassMyInputField_TextSelect:MonoBehaviour,ICanvasElement{......
  • m基于OFDM+QPSK和DNN深度学习信道估计的无线图像传输matlab仿真,输出误码率曲线,并用
    1.算法仿真效果matlab2022a仿真结果如下:     2.算法涉及理论知识概要       基于OFDM+QPSK和DNN深度学习信道估计的无线图像传输"是一种无线通信系统,它利用正交频分复用(OFDM)和四相位偏移键控(QPSK)技术来传输图像数据,并借助深度神经网络(DNN)来进行信道估计,从......
  • Android应用程序架构学习之一
    Android应用程序架构学习之一 核心类: MessagingController是一个线程控制类,通过put方法构造Command类放入队列依次执行Command类实现线程. 方法为command请求和MessageingListener实例提供服务 listener作为一个registeredlistener通过addListener()方法被增加 当......
  • 邮箱项目学习之一 利用IMAP协议接…
    利用IMAP协议接收邮件       InternetMessageAccessProtocol(缩写为IMAP,以前称作交互邮件访问协议)是一个应用层协议,用来从本地邮件客户端(如MicrosoftOutlook、OutlookExpress、Foxmail、Thunderbird)访问远程服务器上的邮件。当前的权威定义是RFC3501。IMAP协议运行在TCP/......
  • Android NIO学习之文件拷贝
    publicstaticlongforChannel(Filef1,Filef2)throwsException{longtime=newDate().getTime();intsize=2*1024;FileInputStreamin=newFileInputStream(f1);FileOutputStreamout=newFileOutputStream(f2);FileChannelinC=in.getChannel......
  • android学习之 如何在当前的Activi…
    当打开多个Activity(之前的没关闭)时,如何在当前的Activity退出程序呢?我们都知道最简单的是finish(),但这只是关闭当前的Activity,并不是退出整个程序。有人说用System.exit(1),我自己也试过用Process.killProcess(Process.myPid())。但都不理想,有时work,有时不起作用只是关闭当前的Acti......