2011-06-28 4 views
0

J'essaye d'analyser les données html d'un site Web en utilisant BeautifulSoup pour python. Cependant, urllib2 ou mécanize n'est pas capable de lire tout le format html. Les données renvoyées sontImpossible de lire les données HTML - Python

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

Quand j'ouvre manuellement le webste à l'aide d'Internet Explorer peut être lu tout le html. Y a-t-il moyen d'utiliser urllib2, mechanize ou BeautifulSoup pour contourner ce problème?

Répondre

3

C'est parce que le contenu est dans les cadres. Vous pouvez analyser la page et rechercher l'attribut src de l'élément principal <frame> ou demander directement le cadre. Dans la plupart des navigateurs, vous pouvez cliquer avec le bouton droit de la souris et sélectionner "Propriétés du cadre" ou plus pour obtenir l'URL du cadre.

Questions connexes