0

BeautifulSoup4 を使用してhttp://exporter.nih.gov/ExPORTER_Catalog.aspx?index=0から取得した html を解析しようとしましたが、結果のスープを印刷すると、次のように終了します。

kZXI9IjAi"/></form></body></html>

生の HTMLの最後の文字9IjaIを検索すると、巨大なビューステートの真ん中にあることがわかりました。BeautifulSoup はこれに問題があるようです。私が間違っているかもしれないことや、そのようなページを解析する方法についてのヒントはありますか?

4

1 に答える 1

1

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 シリーズの一貫した問題を見てきました。

于 2013-08-09T15:54:04.117 に答える