从html中的列中提取多种类型的文本

时间:2014-07-07 19:13:08

标签: python html url csv extract

我是Python新手,我试图从html页面中提取数据。该表的某一列是文本和URL的混合。我想从该列中提取所有信息,保持链接完整到csv文件(我稍后将其另存为Excel文件)。请建议我。这是我提取文本的代码。

trs = soup.find_all('tr')
for tr in trs:
    tds = tr.find_all("td")
    try:
        RS_id = str(tds[5].get_text().encode('utf-8'))

该列的一些单元格有多个网址,我希望它们保持不变。

1 个答案:

答案 0 :(得分:1)

该列中的数据是如何写入的?如果URL与其他文本的分隔方式有明确的模式,则可以使用string.split('character')命令。

假设您关注的数据列中的所有条目都被“,”字符拆分,那么您会说:

column_data=RS_id.split(',')

这将为您提供该列中列出的所有内容的列表,并在每次有逗号字符时将其拆分。然后,您只需索引列表以获取您所追求的URL。如果没有特定的顺序来索引列表,您可能需要执行以下操作:

URL_list=[]
for item in column_data:
    if 'http' in item: URL_list.append(item)

编辑: 看看beautifulsoup如何解析表:http://www.crummy.com/software/BeautifulSoup/bs3/documentation.html

文本应该有.href属性,这是超链接链接到的URL。