1、爬取到的url部分为空值
问题描述和分析:在爬取的一些网站中,有些比如目录开始之前会有空url。无法发起request请求,导致爬虫中断。
解决方法:1、加上一个if判断语句,只对列表中符合要求的url发起后续请求。
2、抛出异常,保存日志或者重新请求,或者加请求超时。用try语句抛出异常,防止程序中断。
2、ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。
问题描述:
爬虫爬取的频率太高,被网站服务器发现并实施反爬,会被远程中断连接。
解决方法:
1、设置sleep()等待一段时间后继续下面的操作【简单常用】
import time
time.sleep(t)
2、在request后面写入一个关闭的操作
response.close()
3、设置socket默认的等待时间,在read超时后能自动往下继续跑
socket.setdefaulttimeout(t_default)
4、防止循环时某一个请求失败导致循环退出,从而程序退出【常用】
抛出异常,保存日志或者重新请求,或者加请求超时。=
try:
html = requests.get(pic, headers=Hostreferer, timeout=15)
print('成功')
except requests.exceptions.RequestException as e:
print(e)
print('失败')
continue