python - Python“请求”包在启动特定网站的HTTP连接时非常慢
问题描述
我正在尝试编写一个脚本来登录我的大学课程网站(http://nalanda.bits-pilani.ac.in/login/)以自动下载我的所有课程文件。我正在使用 Requests 包与服务器进行通信。它正在工作,但需要很多时间。
这是我正在使用的代码:
import requests
import logging
logging.basicConfig(format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p', level = logging.DEBUG)
with requests.Session() as c:
url = 'http://nalanda.bits-pilani.ac.in/login/'
USERNAME = '<my username>'
PASSWORD = '<my password>'
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1'}
login_data = dict(username = USERNAME, password = PASSWORD)
print('Sending authentication details...')
r = c.post(url,data = login_data)
print('Authentication done in '+str(end-start))
r.raise_for_status()
print('Getting list of courses...')
page = c.get('http://nalanda.bits-pilani.ac.in/my/')
这是输出:
Sending authentication details...
07/17/2018 07:13:29 PM Starting new HTTP connection (1): nalanda.bits-pilani.ac.in
07/17/2018 07:15:41 PM http://nalanda.bits-pilani.ac.in:80 "POST /login/ HTTP/1.1" 303 463
07/17/2018 07:15:41 PM http://nalanda.bits-pilani.ac.in:80 "GET /login/index.php?testsession=3053 HTTP/1.1" 303 434
07/17/2018 07:15:41 PM http://nalanda.bits-pilani.ac.in:80 "GET /my/ HTTP/1.1" 200 15578
Getting list of courses...
07/17/2018 07:15:42 PM http://nalanda.bits-pilani.ac.in:80 "GET /my/ HTTP/1.1" 200 15577
启动 HTTP 连接需要 2 分钟以上。之后的所有 POSTS 和 GETS 工作顺利。对于其他网站,比如http://www.google.com,一切正常,启动 HTTP 连接不到一秒钟。
任何修复/解决方法将不胜感激。请注意,在清除缓存的情况下,该网站在我的浏览器上加载速度很快。
解决方案
推荐阅读
- css - 实现访问具有相同标题的电影的下拉菜单。反应,Axios,MovieDB API
- python - 将命令行参数从父节点 js 传递给子进程
- visual-studio-code - 无论如何要在 vscode keybindings.json 中执行多个命令吗?
- python - 检测图像上的裂缝_使用scikit-image标签修改图像
- excel - Excel。当我们比较具有相同索引的两列时,如何找到相同的最大值?
- python - xgboost如何复制模型
- java - 从富文本中提取base64字符串并将它们收集到一个数组中
- strapi - 如何在 Strapi 中复制集合
- hibernate - Hibernate 不编译下面的子查询
- swiftui - SwiftUI 是否可以使用 Toggle 来更新 ObservableObject 的值