前言
我们在用Python爬虫时总是会遇到各种错误,而Python2和Python3又有所不用,有时一个错误能耗费我们很多的时间,我最近遇到了几个错误就让我花费了一天的时间去解决,最后发现是一个很简单的错误,而有些错误网上找了也不一定能用,所以今天我就来说下我用Python3爬虫的时候遇到的一些问题和解决办法,希望能帮助到有需要的小伙伴们哦!
urllib.error.URLError:
解决方法:url或pat中的双引号和单引号不匹配原因或多了个http://之类的
urllib.error.URLError:
当你urllib.urlopen一个 https 的时候会验证一次 SSL 证书 ,当目标使用的是自签名的证书时就会爆出该错误消息。
解决方法:把https://改为http://或添加
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
(unicode error) 'unicodeescape' codec can't decode bytes in position 54-58: truncated\uXXXX escape
解决办法:unicode中多了或少了
ModuleNotFoundError: No module named 'requests'
解决办法:在cmd中查看pip list有没有requests,没有就pip install requests安装
ConnectionResetError(10054, '远程主机强迫关闭了一个现有的连接。', None, 10054, None)
解决办法:使用https代理出错换为http的
urllib.error.URLError:
解决办法:IP被封了或者代理IP失效了,换个代理IP即可
(Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",),))
解决办法:加上一个参数:verify=证书路径,或verify=False 如:requests.get(url,verify=False,headers=headers)
lxml.etree.XPathEvalError: Unfinished literal
解决办法:xpath中语句有错
No connection adapters were found” for
解决办法:多了http://或少了
InsecureRequestWarning警告
解决办法:
添加from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
HTTP Error 405: Not Allowed
解决办法:添加一个模拟浏览器代码
UnicodeEncodeError: 'utf-8' codec can't encode characters in position 23-24: surrogates not allowed
解决办法:encoding = 'utf-8', errors='ignore'
builtins.ModuleNotFoundError: No module named 'win32api'
解决办法:安装pywin32模块
scrapy框架:
ModuleNotFoundError:No module named 'bili.items'
解决办法:
要在命令行运行或者
创建一个新的.py文件写入
from scrapy import cmdline
cmdline.execute("scrapy crawl bilisp --nolog".split())
进行运行
INFO: Ignoring response <400 http://www.bilibili.com>: HTTP status code is not handled or not allowed
解决办法:添加一个模拟浏览器代码
好了今天就介绍到这里,目前只有这些,后面如果遇到新的错误,我会及时更新,谢谢
欢迎各位的关注和分享哦!