0

中量のウェブページを取得して解析しています。スクリプトがPythonセッションの再起動で自然に終了していることに気づきました。これまでのところ、nasa.govページからスープを作ろうとしたときにのみ発生するようです。すなわち:

import urllib2
from bs4 import BeautifulSoup

page=urllib2.urlopen('http://www.nasa.gov')
soup=BeautifulSoup(page)

=====================================RESTART=======================================

なぜこれが発生するのか、そしてとにかく私がそれを回避できるかどうかを誰かが知っていますか?例外などはスローされず、セッションが再開されるだけです。これは2つの異なるマシンで発生しますが、他の人が再現できない場合は興味があります(Python 2.7.2-Enthought Distributionを使用しています)

編集/更新:

BeautifulSoupの代わりにlxmlを使用しようとしましたが、同じ自発的な再起動が発生します。すなわち

from lxml import html
page=html.parse('http://www.nasa.gov')

============================== RESTART =================================

Pythonが開いてページの解析を試みるとすぐに、セッションが再開されます。興味深いことに、ページを読み取ってコンソールに印刷すると正常に機能します。

4

1 に答える 1

3

その URL の Doctype が間違っています。これを試して:

page=urllib2.urlopen('http://www.nasa.gov/').read().replace("<!DOCTYPE \"xmlns:xsl='http://www.w3.org/1999/XSL/Transform'\">", "<!DOCTYPE html>")

soup=BeautifulSoup(page)
于 2012-05-11T01:36:46.050 に答える