标签:入门 get url params kwargs requests Response
1.requests库的安装
1.使用pip install requests;
2.使用pycharm安装requests库(可见本人的视频资源);
<iframe allowfullscreen="true" data-mediaembed="bilibili" id="rwE5aOiP-1610373228401" src="https://player.bilibili.com/player.html?aid=543508029"></iframe>pycahrm安装requests库
2.requests库的get方法使用
r = requests.get(url)
在这里构成了一个向服务器请求资源的Requests对象;
这里的r返回包含服务器资源的Response对象;
requests.get(url,params=None,**kwargs)
url : 拟获取页面的url链接
params : url中的额外参数,字典或字节流格式,可选
**kwargs : 12个控制访问的参数
我们来看下requests库的get方法源代码:
def get(url, params=None, **kwargs):
r"""Sends a GET request.
:param url: URL for the new :class:`Request` object.
:param params: (optional) Dictionary, list of tuples or bytes to send
in the query string for the :class:`Request`.
:param \*\*kwargs: Optional arguments that ``request`` takes.
:return: :class:`Response <Response>` object
:rtype: requests.Response
"""
kwargs.setdefault('allow_redirects', True)
return request('get', url, params=params, **kwargs)
我们可以看到get()使用requests()来封装,requests库一共7个常用方法除了requests()外其余的6个方法均用requests()来封装。
Requests库的两个重要对象分别是Requests对象和Response对象,其中Response对象包含了爬虫返回的信息。
我们使用r.status_code返回状态码,如果返回的状态码时200则表示访问成功,否则访问失败;
type()表示返回额是一个Response类;
r.headers表示返回请求页面的头部信息;
属性 | 说明 |
---|---|
r.status_code | HTTP请求的返回状态,200表示连接成功,404表示链接失败 |
r.text | HTTP响应内容的字符串形式,即,url对应的页面内容 |
r.encoding | HTTP header猜测的响应内容编码方式 |
r.apparent | 从内容分析出响应内容的编码格式 |
r.content | HTTP响应内容的二进制格式 |
3.爬取网页通用代码框架
import requests
def getHTMLText(url):
try:
r = requests.get(url,timeout=30)
r.raise_for_status() # 如果状态不是200,则会引发HTTPError异常
r.encoding = r.apparent_encoding
return r.text
except:
return "产生异常"
if __name__=="__main__":
url = "http:www.baidu.com"
print(getHTMLText(url))
标签:入门,get,url,params,kwargs,requests,Response 来源: https://blog.csdn.net/Progresssing/article/details/112495686
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。