Невозможно прочитать данные HTML - Python - PullRequest
0 голосов
/ 28 июня 2011

Я пытаюсь проанализировать html-данные с веб-сайта, используя BeautifulSoup для python. Тем не менее, urllib2 или Mechanize не может прочитать весь формат HTML. Возвращенные данные

<html>
<head>
    <title>
    EC 4.1.2.13 - Fructose-bisphosphate aldolase    </title>
    <meta name="description" content="Information on EC 4.1.2.13 - Fructose-bisphosphate aldolase">
    <meta name="keywords" content="EC,Number,Enzyme,Pathway,Reaction,Organism,Substrate,Cofactor,Inhibitor,Compound,KM Value,KI Value,IC50 Value,pi Value,Turnover Number,pH,Temperature,Optimum,Range,Source Tissue,BLAST,Subunits,Modification,Crystallization,Stability,Purification">
</head>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<frameset cols="190,*" border="0">
    <frame name="navigation" src="flat_navigation.php4?ecno=4.1.2.13&organism_list=Mycobacterium tuberculosis&Suchword=&UniProtAcc=P67475" frameborder="no">
    <frameset rows="110,*" border="0">
            <frame name="header" src="flat_head.php4?ecno=4.1.2.13" frameborder="no">

        <frame name="flat" src="flat_result.php4?ecno=4.1.2.13&organism_list=Mycobacterium tuberculosis&Suchword=&UniProtAcc=P67475" frameborder="no">

    </frameset>
</frameset>
<noframes>
<body>
<h1>EC 4.1.2.13 - Fructose-bisphosphate aldolase </h1>

<a href="flat_result.php4?ecno=4.1.2.13&organism_list=Mycobacterium tuberculosis&Suchword=&UniProtAcc=P67475">More detailed information on the enzyme EC 4.1.2.13 - Fructose-bisphosphate aldolase</a>

Sorry, but your browser doesn't support frames. Please use another browser!
</body>
</noframes>
</html>

Когда я вручную открываю веб-сайт с помощью Internet Explorer, можно прочитать весь HTML-файл. Есть ли в любом случае использование urllib2, mechanize или BeautifulSoup, чтобы обойти это?

1 Ответ

3 голосов
/ 28 июня 2011

Это потому, что содержимое в кадрах. Вы можете либо проанализировать страницу и найти атрибут src основного элемента <frame>, либо напрямую запросить фрейм. В большинстве браузеров вы можете щелкнуть правой кнопкой мыши и выбрать «Свойства кадра», чтобы получить URL-адрес фрейма.

...