我正在尝试使用scrapy跟踪重定向,但是我遇到了以下问题:
如果我没有为t.co url shortener设置用户代理,我会获得301状态代码和此响应正文:
# 'scrapy.contrib.downloadermiddleware.useragent.UserAgentMiddleware': None,
<noscript>
<META http-equiv="refresh" content="0;URL=http://sn.im/29m4uw5">
</noscript>
<title>http://sn.im/29m4uw5</title>
<script>
window.opener = null; location.replace("http:\/\/sn.im\/29m4uw5")
</script>
现在,当我设置用户代理(PS 3)时,我得到200状态代码和相同的响应主体(并且没有解决重定向)。我需要设置一个用户代理来跟踪链重定向,就像我访问它们一样。
所以,我需要解决重定向,尽管HTTP状态代码不是3XX(就像在这种情况下,200)。
感谢您的帮助!
PS:用于测试的网址是http://t.co/b00VzIsr6l
PS 2:我需要像scrapyjs这样的东西吗?
PS 3:scrapy项目设置如下:
DOWNLOADER_MIDDLEWARES = {
'scrapy.contrib.downloadermiddleware.useragent.UserAgentMiddleware': 400,
'scrapy.contrib.downloadermiddleware.redirect.MetaRefreshMiddleware': 550,
'scrapy.contrib.downloadermiddleware.redirect.RedirectMiddleware': 600}
REDIRECT_ENABLED = True
METAREFRESH_ENABLED = True
USER_AGENT = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'