2013-05-30 220 views
0

我想从一个网站链接提取信息:提取文本

http://www.website.com 

有出现几次的字符串:“字符串截取”,但我想捕捉出现的第一次。这将是以下结构内:

<td width="10%" bgcolor="#FFFFFF"><font class="bodytext9">1-Jun-2013</font></td> 
<td width="4%" bgcolor="#FFFFFF" align=center><font class="bodytext9">Sat</font></td> 
<td width="4%" bgcolor="#FFFFFF" align="center"><font class="bodytext9">TIME</font></td> 
<td width="15%" bgcolor="#FFFFFF" align="center"><a class="black_9" href="link1">Some Text here</a></td> 
<td width="5%" bgcolor="#FFFFFF" align="center"><font class="bodytext9"><img src="img/colors/pink.gif"></font></td> 
<td width="5%" bgcolor="#FFFFFF" align="center"></td> 
<td width="5%" bgcolor="#FFFFFF" align="center"><font class="bodytext9">Another Text</font></td> 
<td width="5%" bgcolor="#FFFFFF" align="center"></td> 
<td width="5%" bgcolor="#FFFFFF" align="center"><font class="bodytext9"><img src="img/colors/white.gif"></font></td> 
<td width="15%" bgcolor="#FFFFFF" align="center"><a class="black_9" href="link2">Here is also Text</a></td> 
<td width="15%" bgcolor="#FFFFFF" align="center"><a href="LINKtoWeb" class=list><u>STRING TO CAPTURE</u></a></td> 
<td width="4%" bgcolor="#FFFFFF" align="center"><a target="_new" href="AnotherLink"><img src="img/img2.gif" border="0"></a></td> 
</tr> 

这是一个固定格式,其中间是12行开始和所有其他标签;我想提取每行中的文本,例如。

1-Jun-2013 
Sat 
TIME 
Some Text here 
... 
STRING TO CAPTURE 

,我也想提取在行链接含有“STRING捕捉到”,这就是:

LINKtoWeb 

在我看来,蟒蛇可能是非常实用的做这个任务,但我也太新的Python到它的工作,希望这里的Python专家可以告诉我如何。 我不知道从哪里开始,四处搜寻,发现这可能是解决方案:

use YAML; 
my $data = Load(http://www.website.com); 
say $data->{"<tr>"}->{"<td>"}->{"STRING TO CAPTURE"}; 

但我不知道如何处理这12行中的所有文本?

+1

使用像BeautifulSoup或Scrapy – Serial

+2

BeautifulSoup或LXML模块可以做的工作 – kevinamadeus

+0

你有代码的Perl – perreal

回答

1

下载并安装BeautifulSoup然后

html = urllib.urlopen('http://www.website.com').read() 
soup = BeautifulSoup.BeautifulSoup(html) 
texts = soup.findAll(text=True) 

def get_stuff(element): 
    if element.parent.name in ['style', 'script', '[document]', 'head', 'title']: 
     return False 
    elif re.match('<!--.*-->', str(element)): 
     return False 
    return True 

visible_texts = filter(get_stuff, texts) 

源 - BeautifulSoup Grab Visible Webpage Text

+0

那么对于我的服务器和网站,我需要将它安装在哪里? – user1314404

+0

在要运行爬行python脚本的机器上安装此python软件包。 '进口BeautifulSoup'应该可以正常工作... –

+0

''从bs4导入BeautifulSoup'' BeautifulSoup是通过一个名为bs4的软件包提供的,它提供了一些其他功能,其中包括''UnicodeDammit''。 –