我是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'))
该列的一些单元格有多个网址,我希望它们保持不变。
答案 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。