没有使用requests.session()登录

时间:2017-11-14 10:21:05

标签: python session web-scraping beautifulsoup python-requests

我使用请求库登录网站。我尝试用scrapy,它工作正常。但是当我尝试请求时,它无法正常工作。登录后我得到主页的内容而不是页面的内容。当我在post()方法后打印url时,我没有得到正确的url。代码在

之下
    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":'fdgdgfdgdfgdfg@gmail.com',"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())

我正在获得" collegekart.in"的输出内容。而不是" collegekart.in/users。

2 个答案:

答案 0 :(得分:1)

放手一搏。你做了很多不必要的事情来做一个简单的任务。但是,当您登录时,您可以找到显示某些项目的网页。我也抓了这个头衔。

import requests
from bs4 import BeautifulSoup

payload={

'utf8':'✓',
'username':'zerqqr1@iydhp.com',
'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)

填充结果的部分输出:

Enriching Speakjng and Writing Skills
Engineering Chemistry 16th edition 
A Textbook of Engineering Physics

答案 1 :(得分:0)

你可以简单地使用get()方法。在那里使用params属性登录凭证。