0

我正在获取和解析大量的网页。我注意到我的脚本以 Python 会话重新启动而自发结束。到目前为止,似乎只有当我尝试从 nasa.gov 页面制作汤时才会发生这种情况。IE:

import urllib2
from bs4 import BeautifulSoup

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

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

有谁知道为什么会发生这种情况以及我是否可以避免它?它不会抛出异常或任何东西,会话只是重新启动。这发生在两台不同的机器上,但如果其他人无法重现它我会很感兴趣(我使用的是 Python 2.7.2 - Enthought Distribution)

编辑/更新:

我刚刚尝试用lxml 代替BeautifulSoup,但它会导致同样的自发重启。IE

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 回答