Python 64 位不存储与 32 位一样长的字符串 python

Python 64 bit not storing as long of string as 32 bit python

我有两台电脑,都是运行64位的Windows7.一台是python32位的,一台是运行python 64 位。两台机器都有 8GB 的​​内存。

我正在使用 BeautifulSoup 抓取网页,但我 运行 在我的 python64 位机器上遇到了问题。我已经能够弄清楚我的 len(str(BeautifulSoup(request.get(http://www.sampleurl.com).text))) 在 64 位中的输出只返回 92520 个字符,但在我的 python32 位机器上的同一个静态站点上,它返回 135000 个字符。

过去的某个时候,我的 python64 位机器上有 python32 位,但卸载它以安装 python64 位,因为我有使用 pip install 安装 scipy 时出现问题(事实证明这不是问题所在)。

无论如何,我不确定为什么我的 64 位 python 机器没有返回整个 html 字符串,我想知道是否有人可以帮助我了解发生了什么以及如何我可以修理它吗?

这不是 32 位/64 位问题。您很可能是 parser 问题;例如,一台机器使用 lxml 与另一台机器使用 html.parser

不同的解析器对损坏的 HTML 的处理方式不同,lxml 是安装时的默认设置。

参见示例:

  • Beautiful Soup findAll doen't find them all
  • Beautiful Soup 4 find_all don't find links that Beautiful Soup 3 finds
  • BeautifulSoup fails to parse long view state
  • Beautifulsoup lost nodes
  • Missing parts on Beautiful Soup results

等等

运行 import lxml 在两台机器上验证。当您将一台计算机上的 Python 安装替换为 64 位版本时,您可能没有包含兼容的 lxml 版本。