首先想说我已经研究了大约2天的论坛,并没有找到任何适合我的东西。 好吧,我们走了。我正在废弃一个网站,我只需要按顺序设置python代码的输出。
这是我在运行它之后得到的:
1
Kidderminster Harr
1183
283
138
170
1005
731
""
208
148
236
813
877
""
+210
1727
.536
在一栏中......
这就是我想要的:我想要一个像这样的csv
1, Kidderminster Harr, 1183, 283, 138, 170, 1005, 731, "", 208, 148, 236,etc...
前一段时间,我记得在每个元素上添加+','就会成功......现在我不知道为什么不再工作了......
这是我到目前为止所做的:
import requests
from bs4 import BeautifulSoup
req = requests.get('http://www.statto.com/football/stats/england/national-league/all-time-table', headers={'User-Agent':'a-user-agent'})
soup = BeautifulSoup(req.text)
summary = soup.find("div",{"id" : "page-content"})
tables = summary.find('table')
count = 0
for row in tables.findAll('tr'):
for cell in row.findAll('td'):
data = cell.getText()
if (count < 18):
data = data + ';'
print data
count += 1
if (count==19):
print data
count = 0
非常感谢任何想法。
答案 0 :(得分:0)
如果我理解正确,你想拆分空格,然后用逗号加入:
lambda_plus
>>> string = "1 Kidderminster Harr 1183 283 138 170 1005 731 "" 208 148 236 813 877 "" +210 1727 .536"
>>> ", ".join(string.split())
'1, Kidderminster, Harr, 1183, 283, 138, 170, 1005, 731, 208, 148, 236, 813, 877, +210, 1727, .536'
方法会将字符串按空格分成列表,然后split
创建一个字符串,每个列表成员用join
分隔。
修改:您的问题稍有改动,但如果您可以将列的每个部分附加到列表中,请拨打", "
。
答案 1 :(得分:0)
print data,
打印数据和换行符。
if (count < 18):
data = data + ","
print data,
count += 1
elif (count==19):
print data
count = 0
抑制换行符。 这有帮助吗?
我想你想要:
{{1}}
有更多的pythonic方法可以做到这一点,但这是我认为你的问题的答案。
答案 2 :(得分:0)
查看您的代码首先需要初始化结果字符串,如下所示:
result = ""
在第二个for循环之前执行此操作。那么你需要在打印数据变量的两个地方添加该循环
result = result + data + ", "
和
result = result + data
然后在第二行之后
print result
你应该得到你需要的东西。