BeautifulSoup报”ValueError: invalid literal for int() with base 10: ‘-‘ “异常的原因以及解决办法

  • Post category:Python

问题原因:

BeautifulSoup出现”ValueError: invalid literal for int() with base 10: ‘-‘”的原因通常是由于HTML文件中包含了无法被正确解析的内容,例如负数的数字,例如 “-1” 等。

解决办法:

通常可以通过以下几种方式解决该问题:

  1. 删除无法解析的内容

首先检查HTML文件中是否有无法被解析的内容,如果有,将其删除或修改为正确的格式,以便BeautifulSoup可以正确地解析。

  1. 使用lxml解析器

尝试使用lxml解析器代替默认的解析器来解析HTML文件,lxml解析器通常能够更好地处理无法被解析的内容。

示例代码:

from bs4 import BeautifulSoup

# 使用lxml解析器
soup = BeautifulSoup(html, 'lxml')
  1. 当作纯文本处理

在一些情况下,我们可能并不需要解析HTML文件中的所有内容,只需要提取其中的一些文本信息,这时可以将HTML文件当作纯文本进行处理。

示例代码:

from bs4 import BeautifulSoup

# 将HTML文件当作纯文本处理
soup = BeautifulSoup(html, 'html.parser')
text = soup.get_text()

以上是针对BeautifulSoup报”ValueError: invalid literal for int() with base 10: ‘-‘”的一些常见解决办法,具体的解决方法需要根据实际情况进行调整。