2016-10-04 14 views
1
import urllib2 
import nltk 
from HTMLParser import HTMLParser 
from bs4 import BeautifulSoup 




l = """<TR><TD><small style=font-family:courier> >M. tuberculosis H37Rv|Rv3676|crp<br />VDEILARAGIFQGVEPSAIAALTKQLQPVDFPRGHTVFAEGEPGDRLYIIISGKVKIGRR<br />APDGRENLLTIMGPSDMFGELSIFDPGPRTSSATTITEVRAVSMDRDALRSWIADRPEIS<br />EQLLRVLARRLRRTNNNLADLIFTDVPGRVAKQLLQLAQRFGTQEGGALRVTHDLTQEEI<br />AQLVGASRETVNKALADFAHRGWIRLEGKSVLISDSERLARRAR<br /></small><TR><td><b><big>Blastp: <a href="http://tuberculist.epfl.ch/blast_output/Rv3676.fasta.out"> Pre-computed results</a></big></b><TR><td><b><big>TransMembrane prediction using Hidden Markov Models: <a href="http://tuberculist.epfl.ch/tmhmm/Rv3676.html"> TMHMM</a></big></b><base target="_blank"/><TR><td><b><big>Genomic sequence</big></b><br /><br /><form action="dnaseq.php" method="get">""" 

print l 

私は1つのHTML行を持ち、HTMLタグに埋め込まれているテキストを抽出したいと思います。私は利用可能なすべての方法を試しましたが、私の場合は動作しません。htmlファイルからテキストを解析する方法

どうすればいいですか?

の予想される出力は次のようになります。

菌H37Rv | Rv3676 | CRP VDEILARAGIFQGVEPSAIAALTKQLQPVDFPRGHTVFAEGEPGDRLYIIISGKVKIGRRAPDGRENLLTIMGPSDMFGELSIFDPGPRTSSATTITEVRAVSMDRDALRSWIADRPEISEQLLRVLARRLRRTNNNLADLIFTDVPGRVAKQLLQLAQRFGTQEGGALRVTHDLTQEEIAQLVGASRETVNKALADFAHRGWIRLEGKSVLISDSERLARRAR

+0

あなたはここでやろうとしているものの非常に良い例があります:https://www.crummy.com/software/BeautifulSoup/bs4/doc/ – dima

答えて

1

私はあなたがこれらの情報を抽出助けるためにBeautifulSoupを使用することができますので、あなたはBeautifulSoupをインポート気づきます。

soup = BeautifulSoup(l,"html.parser") 
print soup.get_text() 

私は試してもうまくいきましたが、最後のタグの文も抽出されますので、必要に応じて結果をカットしなければなりません。

1
try: 
    from BeautifulSoup import BeautifulSoup 
except ImportError: 
    from bs4 import BeautifulSoup 

html = BeautifulSoup(l) 
small = html.find_all('small') 
print (small.get_text()) 

これは小さなタグを取得し、それがフォーマットされていないバージョンを作成したため、私はそう私はコードを書き留めすることを決定している私のために働いていないたBeautifulSoupで試してみましたが、それ

1

内のすべてのテキストを出力します私の自己とその仕事は絶対にうまくいって、私が望むものを作り出しています。

import urllib2 


proxy = urllib2.ProxyHandler({'http': 'http://******************'}) 
opener = urllib2.build_opener(proxy) 
urllib2.install_opener(opener) 
res = urllib2.urlopen('http://tuberculist.epfl.ch/quicksearch.php?gene+name=Rv3676') 
html = res.readlines() 

for l in html: 


    if "Genomic sequence" in l: 
     l = l.split("</small>")[0] 

     l = l.split("<br />") 
     header = l[0] 
     sequence = l[1:] 

     print "".join([">", header.split(">")[4]]) 
     print "".join(sequence) 

出力

>M. tuberculosis H37Rv|Rv3676|crp 


VDEILARAGIFQGVEPSAIAALTKQLQPVDFPRGHTVFAEGEPGDRLYIIISGKVKIGRRAPDGRENLLTIMGPSDMFGELSIFDPGPRTSSATTITEVRAVSMDRDALRSWIADRPEISEQLLRVLARRLRRTNNNLADLIFTDVPGRVAKQLLQLAQRFGTQEGGALRVTHDLTQEEIAQLVGASRETVNKALADFAHRGWIRLEGKSVLISDSERLARRAR 
関連する問題