start
在写模拟登录的时候需要用到python request模块,并且要抓包发包,只能说一无所知,甚至不知道url是什么。写一写给自己科普点网络常识,以方便听懂dalao们聊技术。
所需要准备的包中的内容
url:意思是我们常称为的网址,例如:
1 | url = "https://baidu.com" |
user-agent:指用户代理,可以通过查看抓包的内容来看自己的user-agent,例如:
1 | Mozilla/5.0 (Linux; Android 10; Pixel 2 Build/QQ3A.200805.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.186 Mobile Safari/537.36 |
这些是请求头中的内容,可能需要用到的还有很多,用到了在学,寄(摆烂
Accept、Accept-Charset、Accept- Encoding、Accept-Language、Authorization、From、Host、If-Modified-Since、If-Match、If-None-Match、If-Range、If-Range、If-Unmodified-Since、Max-Forwards、Proxy-Authorization、Range、Referer、User-Agent
这一大堆都可能会用到
因为这次需要实行的是模拟登录,所以发包包内需要的内容是一些登录相关的数据,在这里需要使用python字典来实现。例如:
1 | login = { |
准备工作做足了的话就可以开始写请求了)
request 请求
一般需要请求都是带参数的请求,get和post其实差距不是很大,从网上查了资料大概是这样的:
1 | $ hexo requests.get(url,params={"key1":"value1"}) |
如果写出来大概是这样,有请求头和respnse:(此处的body和my_header是定义的py字典)
1 | $ hexo response = requests.post(url,params=body,headers=my_header) |
因为这里比较疑惑data和params有什么区别,通过资料了解到这是两种携带参数的方法。
简单来说,params是用来发送查询字符串,而data、json是用来发送正文的。
这两种参数post方法都可以用,get方法只能发查询字符串,不能发送正文。
params会将参数key、value拼接在url后;
json 表示使用application/json方式提交请求。接收方request.body的内容为’{“a”: 1, “b”: 2}’的这种形式;
data 表示使用application/form-urlencode方式提交请求,接收方request.body的内容为a=1&b=2的这种形式。
需要注意的
其实请求里使用python字典要包括的东西很多(大概),第一次写也没完全了解大概需要去放些什么东西在请求头和包里,就抓到啥放啥)
请求头里可能还需要time out,accept之类的,补充一点互联网上捞到的看看。
1 | time_str = str(int(1000 * time.time())) |
END
摆烂人要为了自己兢兢业业捏
今天听的是RISE
1 | Target = 'have fun and rise' |
Author: John Doe
Link: http://example.com/2021/12/07/python-request/
Copyright: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.