0

요청 라이브러리를 사용하여 웹 사이트에 로그인했습니다. 나는 치료와 함께 노력했다, 그것은 잘하고있다. 하지만 요청을 시도하면 작동하지 않습니다. 주 페이지의 내용을 가져오고 있지만 로그인 한 후 페이지를 가져 오지 않습니다. post() 메서드를 수행 한 후 url을 인쇄하면 올바른 URL이 표시되지 않습니다. 나는 "collegekart.in"의 대신 collegekart.in/users "의 출력 내용을 얻고있다 requests.session()으로 로그인하지 않음

import requests 
from bs4 import BeautifulSoup 
r=requests.get("http://collegekart.in/login") 
c=r.content 
soup=BeautifulSoup(c,"html.parser") 
token=soup.find("meta",{"name":"csrf-token"}) 
print(token) 
tok=token['content'] 
print(tok) 
s=requests.session() 
login={"username":'[email protected]',"password":'dgfdgdfgfdgdfgd',"csrf-token":tok} 
s.post("http://collegekart.in/login",data=login) 
t=s.get("http://collegekart.in/users") 
print(t.url) 
sop=BeautifulSoup(t.content,"html.parser") 
print(sop.prettify()) 

아래의 코드입니다.

+0

'password': 'hanfenghanfeng', 'username': '[email protected]'이 자격증 명을 사용하십시오. 그런 다음 collegekart.in/users는 –

답변

1

할 수있는 불필요한 물건이 갈. 당신 짓을 많이 부여 . 사용자가 로그인받을 때 간단한 작업하지만, 당신은 몇 가지 항목을 표시하는 웹 페이지를 찾을 수 나뿐만 아니라 제목을 긁어했습니다 인구 결과에서

import requests 
from bs4 import BeautifulSoup 

payload={ 

'utf8':'✓', 
'username':'[email protected]', 
'password':'hanfenghanfeng' 
} 

res = requests.get("http://collegekart.in/access/attempt_login?",headers={'User-Agent':'Mozilla/5.0'},params=payload) 
soup = BeautifulSoup(res.text,"lxml") 
for item in soup.find_all(class_="title"): 
    print(item.text) 

부분 출력 :..

+0

일을 할 것입니다 왜 post() 메소드가 작동하지 않았습니까? post()는 그 권리를 의미합니다. –

+0

이러한 작업을 수행하기 전에 웹 페이지의 반응 방식에 대한 지식을 습득해야하며 개발자 도구를 사용하여 웹 페이지가 반응하는지 확인할 수 있어야합니다. 그러나 나는 나의 대답이 당신의 목적에 부합한다고 생각합니다. 그래서 답으로 받아들이는 것을 잊지 마십시오. 감사. – SIM

+0

어디서 이런 것들을 배울 수 있습니까? PDF와 같은 뜻입니다. –

0

U는 간단히 get() 메소드를 사용할 수 있습니다. 이 경우 로그인 자격 증명에 params 속성을 사용합니다.