内容简介:User-Agent会告诉网站服务器,访问者是通过什么工具来请求的,如果是爬虫请求,一般会拒绝,如果是用户浏览器,就会应答。
https://developer.github.com/v3/migrations/users/
-
json.load()将已编码的 JSON 字符串解码为 Python 对象
def loads(s, encoding=None, cls=None, object_hook=None, parse_float=None,
parse_int=None, parse_constant=None, object_pairs_hook=None, **kw):
"""Deserialize ``s`` (a ``str`` instance containing a JSON
document) to a Python object.
复制代码
-
json.dumps()将 Python 对象编码成 JSON 字符串
def dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True,
allow_nan=True, cls=None, indent=None, separators=None,
default=None, sort_keys=False, **kw):
"""Serialize ``obj`` to a JSON formatted ``str``.
复制代码
-
encode将Python对象编码成JSON字符串 -
decode将已编码的JSON字符串解码为Python对象
URL = 'https://api.github.com'
def build_uri(endpoint):
return '/'.join([URL, endpoint])
def better_print(json_str):
"""Deserialize ``s`` (a ``str`` instance containing a JSON
document) to a Python object."""
return json.dumps(json.loads(json_str), indent=4)
def request_method():
response = requests.get(build_uri('user/emails'), auth=('user', 'psw'))
print(response.status_code)
print(better_print(response.text))
>>[
{
"email": "octocat@github.com",
"verified": true,
"primary": true,
"visibility": "public"
}
]
复制代码
Github修改用户信息
Note: If your email is set to private and you send an email parameter as part of this request to update your profile, your privacy settings are still enforced: the email address will not be displayed on your public profile or via the API.
response = requests.patch(url, auth=('user', 'psw'), json={'name':'123'})
请求异常处理
request.get(url,timeout=timeout) #timeout=(x1,x2) 每步单独限制request-response时长 #timeout=x 总体限制request-response时长
from requests import exceptions
def timeout_request():
try:
response = requests.get(build_uri('user/emails'),timeout=10)
except exceptions.Timeout as e:
print(str(e))
else:
print(response.text)
复制代码
自定义Requests
def hard_request():
from requests import Request, Session
s = Session()
headers = {'User-Agent': 'fake1.3.4'}
req = Request('GET',build_uri('user/emails'), auth=('user','psw'),
headers = headers)
prepped = req.prepare()
print(prepped.body)
print(prepped.headers)
resp = s.send(prepped, timeout=5)
print(resp.status_code)
print(resp.headers)
print(resp.text)
复制代码
关于User-Agent
User-Agent会告诉网站服务器,访问者是通过什么 工具 来请求的,如果是爬虫请求,一般会拒绝,如果是用户浏览器,就会应答。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Web Security Testing Cookbook
Paco Hope、Ben Walther / O'Reilly Media / 2008-10-24 / USD 39.99
Among the tests you perform on web applications, security testing is perhaps the most important, yet it's often the most neglected. The recipes in the Web Security Testing Cookbook demonstrate how dev......一起来看看 《Web Security Testing Cookbook》 这本书的介绍吧!