访问 https 网页时出现 urllib2 Permission denied 错误?
Getting urllib2 Permission denied error while accessing an https webpage?
我制作了一个简单的 python 脚本来访问网页并登录并从中检索数据,它在我的机器上使用了 urllib/urllib2 或 mechanize。
所以我想在一个网站中使用这个脚本,这样任何用户都可以在我的网站上填写他的登录凭据,这个脚本将获取这些数据并去填写另一个网站。
我将 OpenShift.com 用作在线 python 服务器并在其上尝试了我的脚本,它适用于我尝试过的所有站点 (http/https),但它给出了一个错误我的目标网站是:
urllib2.URLError: <urlopen error [Errno 13] Permission denied>
完整错误:http://pastebin.com/73vTYEvu
所以它在我的机器上运行良好真的很奇怪 运行 ubuntu 15.10 但它在服务器上出现此错误并且仅在我的目标网站上出现,这是一个非常简单的网站(link 在下面的脚本中),我认为它是特定于网站的!
我整天都在寻找这个,我尝试了很多方法,包括 https 特定方法,但仍然没有用。
我不介意更改整个方法或服务器,只要它有效:)
我的脚本:(导致错误的部分)
import urllib2
page = urllib2.urlopen('https://uos.sharjah.ac.ae:9050/prod_enUS/twbkwbis.P_WWWLogin')
print page.read()
这通常意味着网站屏蔽了抓取工具。因此,要解决这个问题,您必须伪造一个 User-Agent 字符串并将其传递到 urllib2 构造函数中,如下所示:
req = urllib2.Request('https://uos.sharjah.ac.ae:9050/prod_enUS/twbkwbis.P_WWWLogin', headers={ 'User-Agent': 'Mozilla/5.0' })
html = urllib2.urlopen(req).read()
看来@felipsmartins 是对的,这是一个 Openshift 特定问题。
我能够让我的脚本轻松地在 Heroku 上运行。
我制作了一个简单的 python 脚本来访问网页并登录并从中检索数据,它在我的机器上使用了 urllib/urllib2 或 mechanize。
所以我想在一个网站中使用这个脚本,这样任何用户都可以在我的网站上填写他的登录凭据,这个脚本将获取这些数据并去填写另一个网站。
我将 OpenShift.com 用作在线 python 服务器并在其上尝试了我的脚本,它适用于我尝试过的所有站点 (http/https),但它给出了一个错误我的目标网站是:
urllib2.URLError: <urlopen error [Errno 13] Permission denied>
完整错误:http://pastebin.com/73vTYEvu
所以它在我的机器上运行良好真的很奇怪 运行 ubuntu 15.10 但它在服务器上出现此错误并且仅在我的目标网站上出现,这是一个非常简单的网站(link 在下面的脚本中),我认为它是特定于网站的!
我整天都在寻找这个,我尝试了很多方法,包括 https 特定方法,但仍然没有用。
我不介意更改整个方法或服务器,只要它有效:)
我的脚本:(导致错误的部分)
import urllib2
page = urllib2.urlopen('https://uos.sharjah.ac.ae:9050/prod_enUS/twbkwbis.P_WWWLogin')
print page.read()
这通常意味着网站屏蔽了抓取工具。因此,要解决这个问题,您必须伪造一个 User-Agent 字符串并将其传递到 urllib2 构造函数中,如下所示:
req = urllib2.Request('https://uos.sharjah.ac.ae:9050/prod_enUS/twbkwbis.P_WWWLogin', headers={ 'User-Agent': 'Mozilla/5.0' })
html = urllib2.urlopen(req).read()
看来@felipsmartins 是对的,这是一个 Openshift 特定问题。
我能够让我的脚本轻松地在 Heroku 上运行。