我尝试使用 BeautifulSoup4 来解析从http://exporter.nih.gov/ExPORTER_Catalog.aspx?index=0检索到的 html如果我打印出结果汤,它会像这样结束:
kZXI9IjAi"/></form></body></html>
搜索9IjaI
原始 html 中的最后一个字符,我发现它位于一个巨大的视图状态的中间。BeautifulSoup 似乎对此有疑问。任何提示我可能做错了什么或如何解析这样的页面?
我尝试使用 BeautifulSoup4 来解析从http://exporter.nih.gov/ExPORTER_Catalog.aspx?index=0检索到的 html如果我打印出结果汤,它会像这样结束:
kZXI9IjAi"/></form></body></html>
搜索9IjaI
原始 html 中的最后一个字符,我发现它位于一个巨大的视图状态的中间。BeautifulSoup 似乎对此有疑问。任何提示我可能做错了什么或如何解析这样的页面?
BeautifulSoup 使用可插入的 HTML 解析器来构建“汤”;您需要尝试不同的解析器,因为每个解析器都会以不同的方式处理损坏的页面。
但是,我使用任何解析器解析该页面都没有问题:
>>> from beautifulsoup4 import BeautifulSoup
>>> import requests
>>> r = requests.get('http://exporter.nih.gov/ExPORTER_Catalog.aspx?index=0')
>>> for parser in ('html.parser', 'lxml', 'html5lib'):
... print repr(str(BeautifulSoup(r.text, parser))[-60:])
...
';\r\npageTracker._trackPageview();\r\n</script>\n</body>\n</html>\n'
'();\r\npageTracker._trackPageview();\r\n</script>\n</body></html>'
'();\npageTracker._trackPageview();\n</script>\n\n\n</body></html>'
确保您安装了最新的BeautifulSoup4
软件包,我已经看到在 4.2 中解决了 4.1 系列中的一致问题。