对于刚入门Pythoner在学习过程中运行代码是或多或少会遇到一些错误,刚开始可能看起来比较费劲。随着代码量的积累,熟能生巧当遇到一些运行时错误时就能够很快的定位问题原题。下面整理了常见的错误,希望能够帮助到大家。
例如我们在使用代理获取数据的过程中,假如我们是使用的动态转发模式的代理,动态转发是指是自动转发技术,通过配置固定代理域名、端口、用户名和密码直接使用,默认每个http请求自动转发,不需要绑定IP白名单,简单的配置过程如下:
#! -*- encoding:utf-8 -*- import requests import 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_code print resp.text
当我们配置好代理运行时会遇到返回407错误,一般报407会有以下原因导致,1、如果全部是http的407错误,是代理认证信息不对 2、如果大量http的200成功 ,少量http的407错误,是因为有些语言库,第一次不会传递认证信息,之后才会将认证信息传递过去,这是正常的 3、如果少量http的200成功,大量http的407错误,有可能是每秒请求数大量超出代理限定,代理直接返回http的407错误。我们可以根据407的错误情况进行对号入座就能很快的解决了。这只是爬虫过程中会遇到的一个小小的问题,很容易解决,更多的爬虫错误我们可以关注这里。
若有收获,就点个赞吧