查看一下如何请求登陆通过下图下图的方法是什么?

优采云 发布时间: 2021-08-02 19:24

  查看一下如何请求登陆通过下图下图的方法是什么?

  在抓取页面数据的时候,有时候需要登录获取页面资源,然后需要登录后才能跳转到对应的资源页面,然后需要通过模拟登录,再次抓取登录成功后对应的数据。

  首先我们需要手动登录,查看如何请求登录

  通过下图,我们可以看到实际处理请求的页面是login.php。登录成功后会跳转到index.php页面。下面我们来模拟一下。

  

  代码实现

  LOGIN_URL = 'http://yingxiao.chewumi.com/login.php' #请求的URL地址

DATA = {"username":'accountID',"passwd":'passwd'} #登录系统的账号密码,也是我们请求数据

HEADERS = {

'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36' #模拟登陆的浏览器

}

RES = requests.post(LOGIN_URL,data=DATA,headers=HEADERS) #模拟登陆操作

print (RES.text) #打印返回的文本信息

  接下来我们请求其他页面看看效果

  RES1 = requests.get("http://yingxiao.chewumi.com/show.php?id=64621190")

print(RES1.text)

  

  这时候,当我们登录成功,再次请求另一个页面时,发现无法请求对应的页面,也就是说刚才的模拟登录只对当前操作有效,那么如何使用下面的要求继续工作。在实际过程中,我们知道会话已经过期,需要重新登录。我们第一次登录成功,会话只对当前会话有效。因此,当我们再次登录时,登录失败。然后我们需要在会话的有效期内保存会话,然后再去。请求另一个页面。

  def Get_Session(URL,DATA,HEADERS):

'''保存登录参数'''

ROOM_SESSION = requests.Session()

ROOM_SESSION.post(URL,data=DATA,headers=HEADERS)

return ROOM_SESSION

SESSION =Get_Session(LOGIN_URL,DATA,HEADERS)

# 保存session后再次请求对应的地址

RES2 = SESSION.get("http://yingxiao.chewumi.com/show.php?id=64621190")

print(RES2.text)

  

  这时候我们看到可以请求对应的页面了。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线