【发布时间】:2021-01-04 22:01:01
【问题描述】:
我正在使用 Python 从链接中抓取文本; tournament link
这是我获取表格数据的代码;
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
from urllib.request import urlopen
from bs4 import BeautifulSoup
url = "http://www.hubertiming.com/results/2017GPTR10K"
html = urlopen(url)
soup = BeautifulSoup(html, 'lxml')
rows = soup.find_all('tr') ## find the table rows
现在,目标是获取数据作为数据框。
listnew=[]
for row in rows:
row_td = row.find_all('td')
str_cells = str(row_td)
cleantext = BeautifulSoup(str_cells, "lxml").get_text() ##obtain text part
listnew.append(cleantext) ## append to list
df = pd.DataFrame(listnew)
df.head(10)
然后我们得到以下输出;
0 []
1 [Finishers:, 577]
2 [Male:, 414]
3 [Female:, 163]
4 []
5 [1, 814, \r\n\r\n JARED WIL...
6 [2, 573, \r\n\r\n NATHAN A ...
7 [3, 687, \r\n\r\n FRANCISCO...
8 [4, 623, \r\n\r\n PAUL MORR...
9 [5, 569, \r\n\r\n DEREK G O..
不知道为什么会有换行符和回车符; \r\n\r\n?如何删除它们并获得正确格式的数据框?提前致谢。
【问题讨论】:
-
您能分享一下您的
imports,urlopen究竟来自哪里? -
请查看编辑。我确实添加了
import语句。 -
你知道如何从字符串中删除字符吗?
-
嗨,如果你想成为一个纯粹主义者并且不使用任何额外的库,你可以在数组元素 ant 上调用
.strip()以去除字符串开头和结尾的空白和不可打印字符跨度>
标签: python pandas web-scraping