1.urllib.error.URLError . certificate verify failed: unable to get local issue
- 是python2.79以后版本的原因
https链接不是从签发机构买的
所以失败了,加一句ssl._create_default_https_context = ssl._create_unverified_context
就可以
2.Python 出现 can’t use a string pattern on a bytes-like object
- Python3.0及以上版本在学到爬虫是需要注意的,如果没有这些红色的代码的话可能会出现以下情况:
- TypeError:cannot use a string pattern on a bytes-like object 这种情况解决方法就是加上html=html.decode(‘utf-8’)#python3这句代码;
- AttributeError: module ‘urllib’ has no attribute 'urlopen’这种情况的解决办法就是将urllib改成urllib.request就行了。
3. urllib.error.HTTPError: HTTP Error 403: Forbidden
- 出现这种情况就是因为你要爬取的网站对爬虫进行了限制。
- 用浏览器去查看他的User-Agent,然后加入
def getHtml(url):
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0'}
page1=urllib.request.Request(url,headers=headers)
page=urllib.request.urlopen(page1)
html=page.read()
opener = urllib.request.build_opener()
opener.addheaders = [('User-Agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36')]
urllib.request.install_opener(opener)
urllib.request.urlretrieve(imgurl, '/Users/XXX/%s.jpg' % imagename)
4. TypeError: a bytes-like object is required, not 'str’
出错代码
strr = "hello world"
strEncoded = base64.b64encode(strr)
改为
strr = "hello world"
strEncoded = base64.b64encode(str.encode(strr))
5.Mac 安装mysqlclient报错,OSError: mysql_config not found
brew install mysql-connector-c
pip install mysqlclient
然后还有错:
Exception: Wrong MySQL configuration: maybe https://bugs.mysql.com/bug.php?id=86971 ?
先备份
cp /usr/local/bin/mysql_config /usr/local/bin/mysql_config.backup
sudo vim /usr/local/bin/mysql_config
# Create options
libs="-L$pkglibdir"
libs="$libs -l "
修改成
# Create options
libs="-L$pkglibdir"
libs="$libs -lmysqlclient -lssl -lcrypto"
6. brew安装软件很慢
- 离线下载响应文件
- 将离线文件放到brew的目录下
- 重新执行安装
# cd `brew --cache`
//进入brew的下载目录
# rm go-1.6.2.el_capitan.bottle.tar.gz
//删除刚才下载一半的文件
# mv /Downloads/go-1.6.2.el_capitan.bottle.tar.gz ./
//将下载好的压缩包放到brew下载目录
brew install XXX