我正在用Python为https://www.reseachgate.net编写一个网络爬虫程序。当我尝试使用requests.session登录时,我得到了一个“403禁止”页面,警告说“您的浏览器不接受cookie。使用此站点需要cookie。”如何解决这个问题?
import requests
from bs4 import BeautifulSoupter
headers = {
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:32.0) Gecko/20100101 Firefox/32.0'
}
session = requests.Session()
params = {'login': '######@std.uestc.edu.cn', 'password': '#######'}
s = session.post("https://www.researchgate.net/application.Login.html", data = params, headers = headers)
print s.cookies.get_dict()
print s.text
s = session.get("https://www.researchgate.net/home")
print BeautifulSoup(s.text).title
以下是我得到的:
<div class="error-page">
<h1>
403 Forbidden </h1>
<h3>Your browser doesn't accept cookies. Cookies are required to use this site.</h3>
原来我在登录表单中漏掉了一些字段。
以下是我更新的代码:
import requests
from bs4 import BeautifulSoup
session = requests.Session()
loginpage = session.get("https://www.researchgate.net/application.Login.html")
request_token = BeautifulSoup(loginpage.text).form.find("input",{"name":"request_token"}).attrs["value"]
print request_token
params = {"request_token":request_token,
"invalidPasswordCount":"0",
'login': 'my_email',
'password': 'my_password',
"setLoginCookie":"yes"
}
session.post("https://www.researchgate.net/application.Login.html", data = params)
s = session.get("https://www.researchgate.net/search.Search.html?type=researcher&query=zhang")
print BeautifulSoup(s.text).title
问题内容: 这通常是由XML声明前的空白引起的,但是它可以是任何文本,例如破折号或任何字符。我说这通常是由空白引起的,因为人们认为空白始终是可忽略的,但事实并非如此。 经常发生的另一件事是UTF-8 BOM(字节顺序标记),如果将文档作为字符流传递给XML解析器而不是字节流,则在将XML声明视为空白之前允许我正在编写一个小型Java程序,以获取给定Google搜索字词的结果数量。出于某种原因,在J
我正在编写一个小Java程序,以获取给定谷歌搜索词的结果量。出于某种原因,在Java中我得到了403,但我在web浏览器中得到了正确的结果。代码: 和错误: 它为什么这样做?
问题内容: 执行登录功能后,“在树中查看结果”中的响应数据显示如下: 您的浏览器似乎禁用了JavaScript。 您必须在浏览器中启用JavaScript才能使用本网站的功能。 注意:已启用Firefox中的JavaScript,并且我已使用“测试脚本记录器”来记录浏览器会话。 问题答案: 从JMeter项目主页 JMeter不是浏览器。 就Web服务和远程服务而言,JMeter看起来像一个浏览器
我有一个Spring Boot应用程序,使用Spring Security和Keyclope作为IDP。 Keyclope在以下位置可用https://auth.example.com,具有一个具有客户端backo核心的领域backo和一个配置了所需角色的testuser。 如果我配置本地应用程序,请使用 一切正常。 如果我将其部署到我的开发环境中https://backo.example.com
问题内容: 试图找到一种方法,使每次连接使用Selenium的连接使用“不可信”证书时,禁止Firefox发出警告。我认为,最有效的解决方案是设置浏览器首选项之一。 非常感谢!任何建议将不胜感激! 问题答案: 我发现有关在Selenium for Java中启用此功能的评论 。还有一个关于同一问题的StackOverflow问题,对于Java For Python,这也是我想要的目标语言,我通过浏
我已经用Apache2.4和SSL启动了一个Windows服务器。当我连接到https://www.example.com点击绿锁,我有消息: 您与网站的连接使用过时的加密技术进行加密 有什么建议吗? 下面是: