我正在尝试将结果保存为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
我知道这已被问过几千次了,但是我还没能做到。谢谢!
答案 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
的内容