【Python】请求数据Requests工具包安装及介绍

  • HTTP协议
    协议是指计算机通信网络中两台计算机之间进行通讯所必须共同遵循的规定或规则,超文本传输协议(HTTP)是一种通讯协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。
    目前我们使用的是HTTP/1.1版本。

  • URL(Uniform Resource Locator)地址用于描述一个网络上的资源
    schema://host[:port#]/path/.../[?query-string][#anchor]
    schema指定低层使用的协议(例如,http,https,ftp)
    hostHTTP服务器的IP地址或者域名
    post#HTTP服务器的默认端口是80,这种情况下端口号可以省略。如果使用了别的端口,必须指明,例如:http://www.cnblogs.com:8080/
    path访问资源的路径
    query-string发送给http服务器的数据
    anchor-

http://www.mywebsite.com/sj/test/test.aspx?name=sviergn&x=true#stuff

属性 内容
schema http
host www.mywebsite.com
path /sj/test/test.aspx
query-string name=sviergn&x=true
anchor stuff
  • 服务器和本地的交换机制
    本-------(Request)------------>网
    地-------(Response)---------->络
    浏览器----------------------> 服务器

  • 集中http请求方式(http1.1)
    get post head put options trace delete
    90%以上的网页都是用GET方式,request也是以GET为切入点。

  • requests包
    requests是Python的一个http客户端库,向网页发送请求。
    安装: 在win的cmd中, pip install requests

  • 导入requests模块,几种请求方式

import requests

r =  requests.get(url = '…')
r = requests.post(url = '…')
r = requests.put(url = '…')
r = requests.head(url = '…')
r = requests.delete(url = '…')
r = requests.options(url = '…')
  • 获取网页状态码status code -> 显示网页返回状态
状态 含义 举例
1xx 临时响应
2xx 成功 200(成功)服务器已成功完成处理了请求。通常,这表示服务器提供了请求的网页。
3xx 重定义 302(临时移动)服务器目前从不同位置的网页响应请求,类似跳转页面。
4xx 请求错误 404(未找到)服务器找不到请求的网页。
5xx 服务器错误
  • r.status_code检查网页的状态码
import requests
par = {'wd':'学习使我快乐'}
u = 'https://www.baidu.com/s'
r = requests.get(url = u, params=par)
print(r.url) # https://www.baidu.com/s?wd=%E5%AD%A6%E4%B9%A0%E4%BD%BF%E6%88%91%E5%BF%AB%E4%B9%90
print(type(r)) # 
print(r.status_code) # 200
  • r.encoding检查网页编码
import requests
par = {'wd':'学习使我快乐'}
u = 'https://www.baidu.com/s'
r = requests.get(url = u, params=par)
print(r.url) # https://www.baidu.com/s?wd=%E5%AD%A6%E4%B9%A0%E4%BD%BF%E6%88%91%E5%BF%AB%E4%B9%90
print(r.encoding) # ISO-8859-1

ISO-8859-1是单字节编码,向下兼容ASCII,其编码范围是0x00-0xFF,0x00-0x7F之间完全和ASCII一致,0x80-0x9F之间是控制字符,0xA0-0xFF之间是文字符号。

  • 改变编码
import requests
par = {'wd':'学习使我快乐'}
u = 'https://www.baidu.com/s'
r = requests.get(url = u, params=par)
print(r.url) # https://www.baidu.com/s?wd=%E5%AD%A6%E4%B9%A0%E4%BD%BF%E6%88%91%E5%BF%AB%E4%B9%90
print(r.encoding) # ISO-8859-1
r.encoding = 'utf-8'
print(r.encoding) # utf-8
  • r.text()获取网页内容
import requests
r = requests.get(url = 'https://bj.lianjia.com/ershoufang/101101910066.html')
print(r.text)
  • 获取头域
    HTTP头域是HTTP协议中请求(request)和响应(response)中的头部信息HTTP包括通用头,请求头,响应头和实体头四个部分。
import requests
r = requests.get(url='https://new.qq.com/omn/20180825/20180825A03QJ0.html')
print(r.headers)
  • timeout设置超时时间,一旦超过这个时间还没有获取响应,就会提示错误
import requests
r = requests.get(url = 'https://www.baidu.com/',timeout = 0.1)
print('successful!')

你可能感兴趣的:(【Python】请求数据Requests工具包安装及介绍)