2013-12-18 47 views
0

最近,我編寫了一個python腳本來解析網頁中的特定行。此代碼工作正常,但每當我運行它,它的下載和工作目錄中寫入文件「.PHP」:如何在不寫入光盤的情況下讀取和解析html文件

#!/usr/bin/env python 
import wget 
import re 
from HTMLParser import HTMLParser 
import tempfile 
url = "http://tuberculist.epfl.ch/quicksearch.php?gene+name=0009&submit=Search#sequence" 
filname = wget.download(url) 
a = open(filname,'r') 
b = a.readlines() 
f = "|Rv0009|" 
for c in b: 
    if f in c: 
     pattern = re.compile("> >.+<br /></") 
     z = pattern.findall(c) 
     print z 

我應該做什麼樣的變化,這樣無需編寫一個文件時,它會分析所需的行。

+1

您可以使用'urllib2'模塊(或[requests](http://requests.readthedocs.org/en/latest/)模塊,如果有的話)將頁面內容下載到變量在記憶中。 –

+0

@qwrrty感謝它的工作正常。 – user2935002

回答

2

的幾個注意事項:

  • urllib.urlopen(url)會給你一個類似文件的對象,而不是在磁盤上寫任何東西。
  • 您的代碼正在導入它未使用的2個模塊(HTMLParsertempfile)。擺脫那些進口。
  • 您的網址的#sequence部分永遠不會被提供給服務器(它是HTTP規範的一部分)。你可以把它拿出來。
  • 您正在使用正則表達式來解析HTML。隨着你的用例複雜化,它會導致你痛苦和痛苦。考慮使用lxml.html(http://lxml.de/lxmlhtml.html)或BeautifulSoup(http://www.crummy.com/software/BeautifulSoup/)代替。
相關問題