python爬虫网络请求超时是什么意思_python爬虫怎么处理异常和超时?
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
写代码总是会出异常的,尤其是爬虫这类程序,无法确保每次请求都能稳定地返回统一的结果,比如反爬虫策略提升、代理IP超时、程序异常等等,处理好这些问题,才能保证爬虫程序持续地运行下去。
一、反爬虫策略。这里不多说,之前有讨论过,可以参考之前的文章《爬虫如何有效突破网站的反爬机制?》。
二、超时设置。网络总是不会一如既往的稳定如一,可能代理IP某个时间不稳定,也可能目标服务器某个时间不稳定,还有自身机器的网络也可能不稳定,如果不设置好超时,程序也不好跑下去。
selenium+chrome的超时设置:
显式等待:、等待某个条件发生,然后再继续进行代码。
driver = webdriver.Firefox()
driver.get("http://somedomain/url_that_delays_loading")
try:
element = WebDriverWait(driver, 10).until( #这里修改时间
EC.presence_of_element_located((By.ID, "myDynamicElement"))
)
finally:
driver.quit()
隐式等待:是告诉WebDriver在尝试查找一个或多个元素(如果它们不是立即可用的)时轮询DOM一定时间。默认设置为0,一旦设置,将为WebDriver对象实例的生命期设置隐式等待。
driver = webdriver.Firefox()
driver.implicitly_wait(10) # seconds
driver.get("http://somedomain/url_that_delays_loading")
myDynamicElement = driver.find_element_by_id("myDynamicElement")
三、异常处理。是程序就会有异常,不管是什么程序,python使用try&except语句来处理异常。try&except语句不仅仅是要让其捕获异常更重要的是让其忽略异常,因为爬虫中的绝大多数异常可能重新请求就不存在,因此,发现异常的时候将其任务队列进行修复其实是个最省力的好办法。
try:
passhttp://www.***.com/***/#
#可能出错的语句
except Exception,e:
pass
#保留错误的url,留待下次重跑
print e
finally:
#无论是否处理了异常都继续运行
print time.ctime()
四、自重启设置。如果一个程序在某种情况下报错多次,或者运行时间够久远,那么其性能可能会下降,就像一台电脑一样,用的越久就越慢,重启不失为一个好办法。当然这是治标不治本,但无疑是最省力的方法之一,当满足设置的重启条件后,程序自重启,也是让程序持久运行的一个好方法。
python爬虫网络请求超时是什么意思_python爬虫怎么处理异常和超时?相关推荐
- python爬虫 - python requests网络请求简洁之道
转自:python爬虫 - python requests网络请求简洁之道 requests简介 requests是一个很实用的Python HTTP客户端库,编写爬虫和测试服务器响应数据时经常会用到 ...
- 爬虫网络请求之JS解密一(百度企业信用)
爬虫网络请求之JS解密一(百度企业信用) 前言 反爬策略中最重要的一块领域就是在前端利用JS对数据请求参数进行加密或者数据隐藏(如大众点评的图像位移技术,即使使用代理也是无济于事,必须对JS进行驱动才 ...
- Python发送网络请求(requests)
Python发送网络请求(requests) Python已经是广泛使用的脚本语言了,我们可以使用requests库进行网络请求. 在PyPI中搜索requests,就可以找到这个库 1. 安装 pi ...
- python爬虫网络请求超时_6、web爬虫讲解2—urllib库爬虫—基础使用—超时设置—自动模拟http请求...
利用python系统自带的urllib库写简单爬虫 urlopen()获取一个URL的html源码 read()读出html源码内容 decode("utf-8")将字节转化成字符 ...
- Python爬虫网络请求 requests(get、post)
Python网络请求模块 urllib Urllib 库,它是 Python 内置的 HTTP 请求库,也就是说我们不需要额外安装即可使用,它包含四个模块 第一个模块 request,它是最基本的 H ...
- python 大量网络请求_大规模异步新闻爬虫之网络请求函数的优化
前面我们实现了一个简单的再也不能简单的新闻爬虫,这个爬虫有很多槽点,估计大家也会鄙视这个爬虫.上一节最后我们讨论了这些槽点,现在我们就来去除这些槽点来完善我们的新闻爬虫. 问题我们前面已经描述清楚,解 ...
- python发起网络请求模块【requests、selenium、urllib、urllib3】
python网络请求四大模块[requests.selenium.urllib.urllib3] 1.requests 该模块为python第三方库,需要使用pip安装 安装 pip install ...
- python的网络请求
原文链接:https://www.jianshu.com/p/f05d33475c78 urllib是Python中请求url连接的官方标准库,在Python2中主要为urllib和urllib2,在 ...
- python的网络请求库urllib、urllib2、urllib3、request的联系
文章目录 1. 简介 2. urllib 3. urllib2 4. urllib3 5. requests 6. 相关文章 1. 简介 urllib.urllib2.urllib3.request均 ...
最新文章
- 给vim添加自动跳出括号的功能
- java web学习笔记-jsp篇
- leetcode345——Reverse Vowels of a String(C++)
- 意料之外,也是情理之中 - 我的自由职业之旅
- hdfs写数据流程分析
- android 屏幕坐标色彩,Android自定义View实现颜色选取器
- go-文件读写-db
- 剑指offer——面试题37:两个链表的第一个公共结点
- 【车牌识别】基于matlab投影模板匹配车牌识别【含Matlab源码 1359期】
- 不吼不叫:该如何平静地和孩子合作?
- 浪潮服务器显示一个红色闪电图标,华为手机开不了机,只显示一个红色圆圈里面一个红色闪电符号...
- 什么是多道程序设计技术,试述多道程序运行的特征。
- 详细了解一下股票量化交易接口股
- DICOM世界观·第二章 数字(D)、成像(I)与通讯(Co)
- 如何远程唤醒(WOL)主板为技嘉(gigabyte)的B85M-D3H的linux主机
- 英语思维(世界观,中英文思维的差别)
- 猫哥教你写爬虫 041--模拟登录-cookie
- sp_helpfile
- Linux基础知识与实操-篇三: 文件压缩打包与vim基本使用
- 重庆大学计算机信息管理基础2013,重庆大学计算机信息管理基础课程考试试卷B.doc...