首页 > 解决方案 > 无法使用 Python 请求会话模块登录网站

问题描述

我刚刚开始进行一些网络抓取。不幸的是,我正在尝试使用以下代码访问http://.classic.comunio.de

self.session = requests.session()
payload = {'login': self.username ,
           'pass': self.password,
           'action': 'login'}

headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain",
               "User-Agent": user_agent}

req = self.session.post('http://'+self.domain+'/login.phtml',headers=headers,data=payload).content

我已经检查了http://classic.comunio.de关于用户名、密码和操作的名称。那应该是对的。用户名和密码也正确。

但是,当我尝试登录时,我没有转发到下一页,或者我无法获取我的用户配置文件的内容,这在登录后应该是可能的。

感谢所有帮助,谢谢!

标签: pythonpython-3.xweb-scrapingpython-requests

解决方案


尝试使用 header ,该页面可能会发现您的脚本作为机器人并阻止它。以下代码对我来说很好:

import requests
from bs4 import BeautifulSoup

url='https://classic.comunio.de/login.phtml'
header={'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
payload={'login':'yourname','pass':'yourpass'}

s=requests.Session()
page = s.post(url,data=payload,headers=header)
soup = BeautifulSoup(page.content,'html.parser')
result = soup.find('div',attrs={'id':"manager"}).get_text()
print(result)

推荐阅读