【发布时间】:2021-01-16 22:07:15
【问题描述】:
我正在尝试向现有 csv 文件添加新行。新的row 来自for loop,即appended 到string list,并保存到DataFrame。我不希望将整个loop 保存在内存中,然后保存到csv 文件中。我更喜欢将每一行添加到文件中,在循环迭代时单独更新它,因为它是一个长时间运行的循环,不必等到整个循环完成。
我可以遍历该组,但它会导致重复行。
names = []
addresses = []
pages = np.arange(10300, 10400, 1)
for page in pages:
page = requests.get(
"https://www.testpage.com/" + str(page), headers=headers)
soup = BeautifulSoup(page.text, 'html.parser')
company = soup.find_all('main')
for container in company:
name = container.find("b", {"id": "company_name"})
names.append(name.text.strip())
address = container.find('div', attrs={'class': 'text location'})
addresses.append(address.text.strip())
companies=pd.DataFrame({
'name': names,
'address': addresses
})
companies.to_csv(r'b_10300_10400.csv', mode='a', header=False)
有什么想法吗?
【问题讨论】:
标签: python pandas dataframe beautifulsoup