回溯(最近通话最近): https://retailer.partykungen.se/sjalvlysande-armband.html 文件“ C:/Users/xyz/PycharmProjects/crawler/back-end.py”,第121行,在 cur.execute('''''插入爬行器(URL,标题,变体,类别,注释,价格,描述,标签,图像,文章,股票,is_retailer)值(%s,%s,%s,%s,% s,%s,%s,%s,%s,%s,%s,%s)''',(链接,标题,名称1,猫,评论,价格,说明,标签,图像,艺术品,库存, is_retailer)) psycopg2.ProgrammingError:无法适应“标记”类型
答案 0 :(得分:1)
像上面一样,我会检查您的数据。因此,如果您尝试将熊猫数据框导入Postgres表,我将执行以下操作:
确保已完全剥离所有标签。因此,首先通过检查您的数据框来彻底检查该标签,因为标签无法正确识别对象,因此标签抛出了psycopg2驱动程序。因此,请确保首先从HTML中提取所需的所有信息。使用getText()获得更多的“顽固”标签。
list_titles = []
movie_titles = all_movies[n].find_all("h1",{"class":"blah"})
for k in movie_titles:
title = k.getText()
list_titles.append(title)
答案 1 :(得分:0)
这可能是您在PostgreSQL表中定义数据类型的方式与解析器对象返回类型之间的TypeError冲突。
例如,使用BeautifulSoup4(bs4)来抓取您的文件,树中元素的返回类型为 type:Tag (参见{{ 3}})。
我的建议:
1)将所有Postgre Table类型定义为文本(以测试调试期间是否成功插入)
2)将所有变量转换为字符串:例如
... (str(link), str(titl), str(name1), ...)
3)这样可以使您成功插入,然后可以向后走,确保每个元素都与表中所需的类型匹配。