python - 无法使用 PyQuery 解析大 HTML

标签 python python-2.7 pyquery

由于我不确定我面临的问题是错误还是我缺乏知识,所以我想请求您的帮助。

情况是,当尝试使用 PyQuery 解析此 url ( http://ies.ieee-ies.org/resources/media/publications/TIEpub/1988_2013.htm ) 时,显然它仅加载标题,而忽略正文:

>>> import urllib2
>>> from pyquery import PyQuery as pq

>>> response = urllib2.urlopen('http://ies.ieee-ies.org/resources/media/publications/TIEpub/1988_2013.htm').read() # 9MB page
>>> len(response)
9835026
>>> dom = pq(response)
>>> dom.html()
u'<head><title>IEEE Transactions on Industrial Electronics</title></head><body><h1 align="center">&#13;\n   <img border="0" src="ieeelogo.gif"/><font color="#FF6600">\xa0IEEE Tr
ansactions on Industrial Electronics\xa0&#13;\n   <img border="0" src="ieslogo.gif"/></font>&#13;\n   </h1><h2 align="center">&#13;\n   Volume 35, \xa0Number 1, Feb 1988 \xa0\xa
0\xa0\xa0\xa0\xa0\xa0\xa0\xa0&#13;\n   <a href="http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=41"><font size="4">Access to the journal on IEEE XPLORE</font></a><font s
ize="4"> </font>\xa0\xa0\xa0&#13;\n   <a href="http://tie.ieee-ies.org/"><font size="3">IE Transactions Home Page</font></a><font size="4"> </font> &#13;\n   </h2><hr/><br/><br/
></body>'

PyQuery 上的 HTML 解析是否存在我不知道的大小限制?

PS:我有一个解决办法,使用不同的页面导致相同的内容,但我想知道这样做的原因是什么。

最佳答案

我很确定问题不在于大小,而在于该页面的 HTML 非常糟糕。拥有2000多个<html>例如,其中的标签(正确的数字是一个)。浏览器可以理解它,这让我感到震惊,但 Mozilla 开发人员在此类事情上拥有丰富的经验,我想 PyQuery 开发人员虽然无疑很勤奋,但可能要少得多。如果您可以从不同的页面获取内容,那么一定要这样做,尤其是在该页面损坏程度较低的情况下。

关于python - 无法使用 PyQuery 解析大 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16526168/

相关文章:

python - 如何将 traceback/sys.exc_info() 值保存在变量中?

python - 如何在将 pyquery 对象转换为字符串时取消转义特殊字符

python - 广告扰乱了我的文章爬行

python - PyQuery 如何将一个元素追加和重命名到它的每个子元素中

python 套接字OSError : [Errno 107] Transport endpoint is not connected

Python-读取文本文件的每一行并将每一行传递给变量

python - 如何通过 Boto3 检查现有 key 的存储类?

python-2.7 - 使用 super() 的子类构造函数 - 获取未绑定(bind)方法 __init__()

python - Cython: Segmentation Fault Using API Embedding Cython to C 语言

python - 绘图、图形和标题函数错误