在 进行python进行爬虫的时候,都绕不开登录,很多需求只能用户登录之后才能进行后续的接口调用。 那么服务器如何知道 你此次的请求 是否登录过 还是没有,一般会通过cookie。 因此记录 cookie的作用就非常重要。
#!/usr/bin/env python import os import requests headers = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36', 'Accept' : 'application/json, text/plain, */*', 'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8', 'Content-Type': 'application/json;charset=UTF-8'} import json #创建一个 Session for context-management. s1 = requests.session() nifi2_host='xxxxxxx' # 此时提交一个用户登录请求,这个请求通过后就会 记录 cookie 在这个s1中。 r = s1.post('http://%s:8080/login' %(nifi2_host), headers=headers, data='username=xxxx&password=xxxx&pre_url=none') #那么 此时 触发的请求中 已经自带了cookie,获取数据没有问题,但是如果没有登录这一步,直接调用下面的代码,就会直接失败 r = s1.post('http://%s:8080/tabs/jobs/search_job'%(nifi2_host), headers=headers, data='projectName=' + x + '&keyword=&rows=5000&page=1&sortOrder=asc') ........