我在使用 Python 处理某个重定向时遇到问题。我正在请求一个显然加载并立即重定向到 ww1.www.com 的页面。我假设是这种情况,因为我已经尝试了所有我知道的返回标头/状态代码的方法,并且总是以适当的结果结束(状态代码:200,适当的主机/引荐来源参数等)。
这是我所拥有的:
from BeautifulSoup import BeautifulSoup
import urllib
import psycopg2
import psycopg2.extras
db = psycopg2.connect(
host = 'myIP'
database = 'myDATABASE'
user = 'myUSERNAME'
password = 'myPASSWORD'
)
cursor = db.cursor(cursor_factory = psycopg2.extras.RealDictCursor)
cursor.execute("SELECT info FROM table")
for row in cursor:
url = 'http://www.website.com/' + row['info']
file_pointer = urllib.urlopen(url)
html_object = BeautifulSoup(file_pointer)
if file_pointer.getcode() != 200:
continue
如果状态代码不等于 200,if 语句应该阻止执行任何进一步的代码,但是我在本节之后的代码中出现索引错误,并且在调查提供错误的 url 之后,我发现它重定向而没有给我状态码:302。
关于为什么我会在重定向时收到 200 状态代码响应的任何想法?(我也尝试过 urllib2 和 httplib 的等价物)另外,我怎样才能防止这种情况发生?