2013-12-18 51 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/)代替。
相关问题