前段时间我用Java编写了一个程序来刮取我大学的课程目录。我决定切换到python,因为我需要更轻量级的东西。
对于我的java scraper,我使用了jSoup。对于我的python项目,我使用BeautifulSoup并请求库。
我尝试访问的网址:https://webapp4.asu.edu/catalog/classlist?s=MAT&n=243&t=2157&e=open&hon=F
问题是如果没有正确的cookie,链接将重定向,询问您是否正在寻找校园课程或在线课程。一旦您选择了校园,该链接将起作用。我做了一些研究,发现请求是依赖于cookie的。在java中代码工作正常,看起来像这样:
Document doc = null;
String url = "https://webapp4.asu.edu/catalog/classlist?s=MAT&n=243&t=2157&e=open&hon=F";
try {
Connection connection = Jsoup.connect(url)
.cookie("onlineCampusSelection", "C");
connection.timeout(0);
doc = connection.get();
} catch (IOException e) {
e.printStackTrace();
}
现在我试图在python中重新创建它,这是我到目前为止所拥有的。
import requests
from BeautifulSoup import BeautifulSoup
url = 'https://webapp4.asu.edu/catalog/classlist?s=MAT&n=243&t=2157&e=open&hon=F'
cookies = dict(onlineCampusSelection = 'C')
r = requests.get(url, cookies=cookies)
print r.text
任何帮助都会非常感激。
我已阅读文档中的请求,但找不到我的解决方案。当我运行代码时,这是我收到的错误。 Connection Forcibly Closed