如何将 BeautifulSoup 网络抓取表格保存到 csv 文件

问题描述 投票:0回答:1

我使用这种方法在网络上抓取了表格的内容,现在我希望将其保存到 csv 文件中,但我不确定如何保存(这是针对课堂上的项目,所以我无法发布任何实际代码,因为我可能会被标记为抄袭,但我做了与示例完全相同的事情)。我是数据科学/Python 的新手,所以它可能不是最好的方法,但它是我可以弄清楚如何实际抓取数据的方法。谢谢!!

https://scrapfly.io/blog/how-to-scrape-tables-with-beautifulsoup/

from bs4 import BeautifulSoup
import requests 

soup = BeautifulSoup(requests.get("https://www.w3schools.com/html/html_tables.asp").text)
# first we should find our table object:
table = soup.find('table', id="customers")
# then we can iterate through each row and extract either header or row values:
header = []
rows = []
for i, row in enumerate(table.find_all('tr')):
    if i == 0:
        header = [el.text.strip() for el in row.find_all('th')]
    else:
        rows.append([el.text.strip() for el in row.find_all('td')])

print(header)
['Company', 'Contact', 'Country']
for row in rows:
    print(row)
['Alfreds Futterkiste', 'Maria Anders', 'Germany']
['Centro comercial Moctezuma', 'Francisco Chang', 'Mexico']
['Ernst Handel', 'Roland Mendel', 'Austria']
['Island Trading', 'Helen Bennett', 'UK']
['Laughing Bacchus Winecellars', 'Yoshi Tannamuri', 'Canada']
['Magazzini Alimentari Riuniti', 'Giovanni Rovelli', 'Italy']
python web-scraping beautifulsoup data-science export-to-csv
1个回答
0
投票

Python 有一个很棒的内置 CSV 库。这是 the writer 对象,它有一个

writerow()
函数,可以处理您为其输入的内容:字符串列表。保存到 CSV 文件看起来与您在上面编写的打印语句非常接近。

例如,将其添加到脚本末尾:

import csv
with open('contacts.csv', 'w') as csvfile:
    contact_writer = csv.writer(csvfile)

    contact_writer.writerow(header)
    for row in rows:
        contact_writer.writerow(row)

writer()
接受很多选项来帮助微调输出。

© www.soinside.com 2019 - 2024. All rights reserved.