我是靠谱客的博主 超帅方盒,最近开发中收集的这篇文章主要介绍BeautifulSoup的string是navigablestring不能存入MySQL数据库怎么办?,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
在练习爬虫时,使用BeautifulSoup解析HTML文档后,希望把数据保存到MySQL数据库,但是在插入数据库时出现报错:
for key , value in ulist.items():
cursor.execute('INSERT INTO UList values(%s,%s,%s,%s,%s)',[key,value[0],value[1],value[2],value[3]])
mysql.connector.errors.ProgrammingError: Failed processing format-parameters; Python ‘navigablestring’ cannot be converted to a MySQL type
原因是navigablestring 是 BeautifulSoup 中的一种类型 <class ‘bs4.element.NavigableString’>,不是 MySQL 所认识的类型,所以会导致存入失败
Beautiful Soup Documentation
Beautiful Soup的文档里告诉我们只要使用unicode()函数把navigablestring转换成MySQL能识别的字符串就行。
但是Python3中,unicode()函数已经和str()函数合并。所以我们只需要用str(函数)把Beautiful Soup解析出来的navigablestring,转换成MySQL能识别的字符串。
def getUList(html):
ulist = {}
soup = BeautifulSoup(html, 'html.parser')
for tr in soup.tbody.children:
if isinstance(tr,bs4.element.Tag):
tds = tr('td')
key = str(tds[0].string)
value = (str(tds[1].string),str(tds[2].string),str(tds[3].string),str(tds[4].string))
ulist.setdefault(key,value)
return ulist
最后
以上就是超帅方盒为你收集整理的BeautifulSoup的string是navigablestring不能存入MySQL数据库怎么办?的全部内容,希望文章能够帮你解决BeautifulSoup的string是navigablestring不能存入MySQL数据库怎么办?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复