如何将结果写为csv?

时间:2016-01-14 05:01:36

标签: python csv python-3.x

我正在尝试将结果保存为csv以便执行db。

import requests
from bs4 import BeautifulSoup
import csv

payload = {'ID': '18845', 'PS': '1', 'Submit': 'Submit'}
r = requests.post("http://.com", data=payload)

soup = BeautifulSoup(r.text, "html.parser")

for row in soup.findAll('table')[0].findAll('tr'):
    ans = row.findAll('td')[1].contents
    print (ans) #delete later

我得到了这个

['559']
['364']
['529']
['0']
['461.5']
['460']
['460']  

如何通过这种方式将这些结果保存在一行?

559;364;529;0;461.5;460;460

我知道这已被问过几千次了,但是我还没能做到。谢谢!

1 个答案:

答案 0 :(得分:1)

您必须在列表中获取这些ans,然后在csv上编写的代码非常简单。从您的代码开始,这大概就是它的外观:

import requests
from bs4 import BeautifulSoup
import csv

payload = {'ID': '18845', 'PS': '1', 'Submit': 'Submit'}
r = requests.post("http://.com", data=payload)

soup = BeautifulSoup(r.text, "html.parser")

with open('some.csv', 'wb') as csvfile:
    csvwriter = csv.writer(csvfile, delimiter=';')
    ll = []
    for row in soup.findAll('table')[0].findAll('tr'):
        ans = row.findAll('td')[1].contents
        ll.append(ans)
    csvwriter.writerow(ll)

您可能不需要“构建”“ll”列表,确保您可以从“汤”中获取它。如果您需要帮助,可以提供r.text

的内容