现在用scrapy爬一个网站始终遇到521错误,是怎么回事
2个回答
2016-11-21
展开全部
【问题描述】:
如下图所示我们看到的,提示网站还原错误,
<br />
【原因分析】:
这往往是浏览器加载项造成的
<br />
【简易步骤】:
【IE】—【工具】—【管理加载项】,逐个关闭加载项排查。
<br />
【解决方案】:
1. 点击【开始】—【所有程序】—【附件】—【系统工具】—【internet explorer(无加载项)】,这样你就可以打开ie了,你也可以右键单价IE的图标,在右键菜单中,选择无加载项启动。但是并不是所有的电脑都有这个选项。(如图1)
图1
<br />
2. 在打开的IE中,我们可以看到一个这样的页面,在标签栏下面有一个提示消息:当前正在禁用加载项……,右键点击这个提示消息,选择管理加载项,有的浏览器没有提示这个消息,我们用下面的方法打开加载项管理(如图2)
图2
<br />
3. 如果你的浏览器没有菜单栏,可以先调出菜单栏,如图所示在空白的位置右键单击,然后选择【菜单栏】(如图3)
图3
<br />
<br />
4. 打开菜单栏后,在工具菜单下,点击【管理加载项】,这样也可以打开管理加载项。(如图4)
图4
<br />
<br />
5. 在管理加载项面板中,你可以在这里看到很多加载项,先按下ctrl+a,选中所有的加载项,然后右键单击选择【全部禁用】(如图5)
图5
<br />
<br />
6. 禁用了加载项以后,我们正常启动IE,不要以上面提到的【无加载项】的方式启动浏览器。只要双击打开浏览器就可以了。同样的方法:在菜单栏上执行,工具--管理加载项,打开加载项管理器,然后右键单击第一个加载项,选择【开启】,这样就启用了这个加载项。其中了第一个加载项以后,我们就关闭浏览器,重启浏览器看是否出现【网络还原错误】(如图6)
图6
<br />
<br />
7. 如果仍然没有提示错误,我们接着启用第二个加载项,重启启动浏览器,看看是否出现【网络还原错误】。以此类推,我们逐一启动加载项,直到找到那个出现问题的加载项,比如下面我启动了百度工具的加载项以后,ie重启发生了网络还原错误,先关闭ie。(如图7)
图7
<br />
<br />
8. 和上面提到的方法一样,点击【开始】—【程序】—【附件】—【系统工具】—【IE】(如图8)
图8
<br />
<br />
9. 打开IE以后,菜单栏上执行执行:工具--管理加载项。找到产生错误的加载项,右键单击,然后选择【禁用】,启用其他的加载项。这样问题就最终解决了。(如图9)
图9
展开全部
你的爬虫肯定被该网站检测到了,headers用了都不行那么只有看它是限制的你的ip还是账号,如果不用登录那么你先换个ip跑跑试试,看是否正常,或者直接在爬虫服务器上手动访问看能否成功
------更新-------
应题主要求,我把测试代码贴出来,这里的cookie是我刚才通过手动访问拿到的,带入它访问就没问题,至于cookie的过期时间,我没有仔细看,如果题主不懂我再好好看吧。
import requests
url = 'http://www.cnvd.org.cn'
headers = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Accept-Encoding': 'gzip, deflate, sdch',
'Accept-Language':'zh-CN,zh;q=0.8',
'AlexaToolbar-ALX_NS_PH': 'AlexaToolbar/alx-4.0',
'Cache-Control': 'max-age=0',
'Connection':'keep-alive',
'Host':'www.cnvd.org.cn',
'Referer':'http://www.cnvd.org.cn/',
'Upgrade-Insecure-Requests':'1',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36',
'Cookie':'__jsluid=224f8fc054404821896d6b6bd2415533; __jsl_clearance=1472619039.65|0|4opPNLlmaO6pFXwTMO%2BQ5UAhfEA%3D; JSESSIONID=AE8735BE6328B81C7CD4352B75F25316; bdshare_firstime=1472619047205'
}
cont = requests.get(url, headers=headers).text
print(cont)
希望对你有帮助
------更新-------
应题主要求,我把测试代码贴出来,这里的cookie是我刚才通过手动访问拿到的,带入它访问就没问题,至于cookie的过期时间,我没有仔细看,如果题主不懂我再好好看吧。
import requests
url = 'http://www.cnvd.org.cn'
headers = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Accept-Encoding': 'gzip, deflate, sdch',
'Accept-Language':'zh-CN,zh;q=0.8',
'AlexaToolbar-ALX_NS_PH': 'AlexaToolbar/alx-4.0',
'Cache-Control': 'max-age=0',
'Connection':'keep-alive',
'Host':'www.cnvd.org.cn',
'Referer':'http://www.cnvd.org.cn/',
'Upgrade-Insecure-Requests':'1',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36',
'Cookie':'__jsluid=224f8fc054404821896d6b6bd2415533; __jsl_clearance=1472619039.65|0|4opPNLlmaO6pFXwTMO%2BQ5UAhfEA%3D; JSESSIONID=AE8735BE6328B81C7CD4352B75F25316; bdshare_firstime=1472619047205'
}
cont = requests.get(url, headers=headers).text
print(cont)
希望对你有帮助
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询