数据输出从以下代码是水平的,可以垂直

时间:2018-06-04 07:28:48

标签: python beautifulsoup

数据输出在以下代码中是水平的,可以垂直,非常感谢!

from bs4 import BeautifulSoup
import urllib2

url1 = "url"

content1 = urllib2.urlopen(url1).read()
soup = BeautifulSoup(content1,"lxml")

div = soup.find("form", {"name": "SelHorse"})
rows = div.findAll('table')[6].findAll('tr')

for row in rows:
    print (row.text)

3 个答案:

答案 0 :(得分:1)

您可以找到所有td代码,然后使用str.join

<强>实施例

for row in rows:
    if row:
        print( " ".join(td.text.strip() for td in row.findAll("td") if td) )

答案 1 :(得分:1)

在你的打印声明中使用它:

print ((row.text).strip())

这将删除输入中的换行符,因此输出中间不会有空行。

对于逗号,你可以做的是:

for row in rows:
    print ((row.text).strip() + ",")

注意:这将打印&#34;,&#34;即使在最后一行。为了避免这种情况,请单独打印该行。即在for循环之外。

答案 2 :(得分:0)

for循环中的每个单独的print语句都将创建一个新行。如果你想在一行中写下所有内容(我假设你的意思是这样),你必须在一个字符串中收集所有内容。用以下代码替换你的for循环:

output = ''
for row in rows:
    output += row
print row