Pandas 用BeautifulSoup从网页上删除所有表格,并压缩成一个csv文件

Pandas 用BeautifulSoup从网页上删除所有表格,并压缩成一个csv文件,pandas,web-scraping,beautifulsoup,Pandas,Web Scraping,Beautifulsoup,我正在抓取的页面上有许多小表格,我已经运行了代码,并为每个表格创建了一个csv文件。我想将所有表格压缩成一个csv文件。有人知道怎么做吗?下面是我的代码,它将为每个表输出一个csv文件。我是否需要以不同的方式获取数据 import bs4 as bs import urllib.request from requests import get import pandas as pd from csv import writer url = 'https://www.vegasinsider.co

我正在抓取的页面上有许多小表格,我已经运行了代码,并为每个表格创建了一个csv文件。我想将所有表格压缩成一个csv文件。有人知道怎么做吗?下面是我的代码,它将为每个表输出一个csv文件。我是否需要以不同的方式获取数据

import bs4 as bs
import urllib.request
from requests import get
import pandas as pd
from csv import writer
url = 'https://www.vegasinsider.com/college-basketball/scoreboard/scores.cfm/game_date/01-12-2020'
source = urllib.request.urlopen(url)
soup = bs.BeautifulSoup(source, 'lxml')
tables = soup.find_all('table', attrs={'class':'sportPicksBorder'})
for num, table in enumerate(tables, start=1):
    filename = 'C:\\Users\\MyName\\Documents/table-%d.csv' % num
    with open(filename, 'w')as f:
        data = []
        csv_writer = writer(f)
        rows = table.find_all('tr')
        for row in rows:
            headers = row.find_all('th')
            if headers:
                csv_writer.writerow([header.text.strip()for header in headers])
            columns = row.find_all('td')
            csv_writer.writerow([column.text.strip() for column in columns])

您可以通过将“writer”移出for循环来实现:

将bs4作为bs导入
导入urllib.request
从请求导入获取
作为pd进口熊猫
从csv导入编写器
url='1〕https://www.vegasinsider.com/college-basketball/scoreboard/scores.cfm/game_date/01-12-2020'
source=urllib.request.urlopen(url)
soup=bs.BeautifulSoup(来源为“lxml”)
tables=soup.find_all('table',attrs={'class':'sportPicksBorder'})
文件名='C:\\Users\\MyName\\Documents\\tables.csv'
将open(filename,'w')作为f:
数据=[]
csv_writer=writer(f)
对于表中的表:
行=表。查找所有('tr')
对于行中的行:
columns=行。查找所有('td'))
csv_writer.writerow([column.text.strip()表示列中的列])

这会将所有内容写入单个csv文件,但数据有点混乱,仍需要清理。我不知道你的原始代码会如何清理它,虽然,当我加载的网页没有th标签,一切都是tr/td。此外,我是在Mac上这样做的,所以我不确定tables.csv的文件路径是否正确格式化

您添加的内容很好地将其保存到一个CSV文件中。是的,我知道这个网站上没有标题,我尝试过的另一个网站有标题。文件路径将文件输出到我的windows笔记本电脑上的documents文件夹。mac上的路径可能有点不同。我的下一步是弄清楚如何清理表,但我不确定如何通过多个“td”类循环找到我需要的数据。