从程序本身是无法解决的。
可以试一下以下方式:
(1)伪装消息头,伪装成浏览器,使用urllib.request.build_opener添加User-agent消息头,示例如下:
opener.addheaders = [('User-agent',
'Mozilla/5.0 (SymbianOS/9.3; Series60/3.2 NokiaE72-1/021.021; ' +
'Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko)' +
' Version/3.0 BrowserNG/7.1.16352'),
('Cookie', 自定义cookie信息),
('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8')]
(2)自己装几个虚拟机,分别不同IP在上面跑爬虫的时候频率别太高了,加个过程里加个 time.sleep(1)或(2),通常情况只要频率不是太高是无法区别是正常阅读还是爬东西的。
(3)找proxy用代理,respose发现异常就换新的代理IP
(4)如果为拨号,则被封后断线重新拔号,更换新IP
本回答被网友采纳