我正在尝试拆分从URL中提取文本后得到的字符串。提取的数据放在CSV文件中,我试图分离数据。
playerInfo = items[i].getText(separator=u'%|-').encode('utf-8').split('%|-')
我想要实现的是删除%
和-
。我提取的数据示例:
<div style="padding-left:20px; width:280px; float:left"> - <a href="default.asp?id=19&spillerid=739&todo=arkiv">Alexander Back - Forsvar</a><br></div>
所以我想要的是将名称Alexander Back
和位置Forsvar
分开,然后删除-
在我的CSV中,我有两列;一个用于名称,一个用于位置。我通过执行以下操作来提取数据:
items = soup.find_all('div', attrs={'style': 'padding-left:20px; width:280px; float:left'})
答案 0 :(得分:0)
您可以使用.get_text(strip=True)
来帮助获取文字。然后再进行一次剥离和分割将给出两个值:
from bs4 import BeautifulSoup
import csv
html = """
<div style="padding-left:20px; width:280px; float:left"> - <a href="default.asp?id=19&spillerid=739&todo=arkiv">Alexander Back1 - Forsvar1</a><br></div>
<div style="padding-left:20px; width:280px; float:left"> - <a href="default.asp?id=19&spillerid=739&todo=arkiv">Alexander Back2 - Forsvar2</a><br></div>
"""
soup = BeautifulSoup(html, "html.parser")
with open('output.csv', 'wb') as f_output:
csv_output = csv.writer(f_output)
csv_output.writerow(['Name', 'Position'])
for div in soup.find_all('div', attrs={'style': 'padding-left:20px; width:280px; float:left'}):
csv_output.writerow([e.strip() for e in div.get_text(strip=True).strip('-').split('-')])
给你一个output.csv
文件,如下所示:
Name,Position
Alexander Back1,Forsvar1
Alexander Back2,Forsvar2