python爬虫怎么解决超时timeou错误

news/2024/11/29 5:45:44/

爬虫在运行过程会出现各种报错的问题,比如当我们在进行网络爬虫的时候,一般都是先进行网站的访问才能够正常的进行数据的获取,但是有的时候进行网站的访问的时候,总是会出现请求超时的情况。这个就可能是因为网络状况不好或者是服务器的网络出现延迟导致的我们访问请求超时。或者又是在进行网络端口连接的时候时间的延迟也会导致或者是在请求量比较大,目标网站承重量有限的情况下可能会出现下面这种报错。

Max retries exceeded with url:...... Connection to www.xxxx.com timed out

想要来进行解决这个问题,我们可以通过设置timeout()来使得响应速度加快,我们可以将这个方法添加在requests.get()语句中,来限制请求的时间,举子例子,代码如下所示:

req = requests.get(url, headers=headers, proxies=proxies, timeout=(3,7))

还有在爬虫程序里面添加了代理,但是爬取数据量比较大的情况下出现了超时,降低请求量或限制速度都不是好的选择,为了能解决报错和按量采集数据,可以通过增加代理IP的量来解决。高并发的代理IP如何在爬虫程序里面实现,这里附带亿牛云动态转发高请求支持下的爬虫过程:

    #! -*- encoding:utf-8 -*-import requestsimport random# 要访问的目标页面targetUrl = "http://httpbin.org/ip"# 要访问的目标HTTPS页面# targetUrl = "https://httpbin.org/ip"# 代理服务器(产品官网 www.16yun.cn)proxyHost = "t.16yun.cn"proxyPort = "31111"# 代理验证信息proxyUser = "username"proxyPass = "password"proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {"host" : proxyHost,"port" : proxyPort,"user" : proxyUser,"pass" : proxyPass,}# 设置 http和https访问都是用HTTP代理proxies = {"http"  : proxyMeta,"https" : proxyMeta,}#  设置IP切换头tunnel = random.randint(1,10000)headers = {"Proxy-Tunnel": str(tunnel)}resp = requests.get(targetUrl, proxies=proxies, headers=headers)print resp.status_codeprint resp.text

http://www.ppmy.cn/news/668624.html

相关文章

解决前端播放的bug

前言: 在前端开发中,视频播放卡顿是一个常见的问题,尤其是在加载好的时间节点点击后仍然卡顿,给用户带来不良的观看体验。本文将重点介绍该问题的原因、解决方案以及编码调整三个方面,帮助开发者解决前端播放bug。 一…

#驱动任意COM接口的小票机(POS热敏打印机)

using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Threading; namespace Pixysoft.ITer.Printer.Zonerich {class Program{static void Main(string[] args){Console.WriteLine("测试打开钱箱");Test01();Console…

出现了内部错误,Internet Explorer无法打印该文档

1、Windows 无法连接到打印机。 键入的打印机名不正确,或者指定的打印机没有连接到服! 在系统“服务”中与打印机相关可能导致共享打印机失败的服务有:TCP/IP NetBIOS Helper,rintSpooler出现添加网络打印机失败时,也可以在服务中…

基于北洋OPOS SDK二次开发包,支持EPSON和北洋、佳博、商祺等支持标准ESC/POS指令的POS打印机

C#版OPOS打印 基于北洋OPOS SDK二次开发包,支持EPSON和北洋、佳博、商祺等支持标准ESC/POS指令的POS打印机支持并口,串口,网口,USB口,驱动方式等多种端口支持开关钱箱支持条码打印SDK中支持的其他设备的控制(扫描枪等) 北洋SDK中只有VB和Delphi的例程,所以参照Delph…

Java自动化测试脚本备份

我了解的自动化测试有两种, 一种是点击屏幕,进行随机测试。 另一种是获取指定的事件,进行耐久性测试,比如点击1000次,用手点击测试是不可行的,比如反复点击某个按钮会不会崩溃。测试固定的位置。 这份代…

vs2008能用c语言吗,如何用VS2008编写C语言(2)

11-20阅读数4万 前几天,GitHub 有个开源项目非常火,只要输入标题就可以生成一篇长长的文章。背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器学习等复杂算法只是,当我看了源代码之后...博文 11-25阅读数2万 一、简介(Data…

Android开发中的一些小知识点记录(101-120)

编写不易,如有转载,请声明出处:http://blog.csdn.net/zxc514257857/article/details/118554522 Android开发中的一些小知识点记录(1-20) (21-40)(41-60)(61-8…

打开钱箱的操作方法

USB端口,可以当COM口操作的。直接用COM控件往端口写数据就行了。 我用的是SPcomm控件。 var tmpStr: string; esc: TOutBufPassThrough; begin cm1.CommName : edt1.Text; cm1.StartComm; begin cm1.WriteCommData(PChar(tmpStr), Length(tmpStr)); cm1.WriteCommDa…