我使用请求库登录网站。我尝试用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。
答案 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属性登录凭证。