Export to csv 如何从维基百科打印和保存.csv列表

Export to csv 如何从维基百科打印和保存.csv列表,export-to-csv,Export To Csv,我正试图打印并保存维基百科的列表(以.csv格式)。我不确定我的代码哪里出了问题。有什么建议吗 import requests from bs4 import BeautifulSoup result = requests.get("https://en.wikipedia.org/wiki/List_of_Game_of_Thrones_episodes") result page = result.content soup = BeautifulSoup(page, "lxml") so

我正试图打印并保存维基百科的列表(以.csv格式)。我不确定我的代码哪里出了问题。有什么建议吗

import requests
from bs4 import BeautifulSoup

result = requests.get("https://en.wikipedia.org/wiki/List_of_Game_of_Thrones_episodes")
result

page = result.content
soup = BeautifulSoup(page, "lxml")
soup 

table = soup.find("table", {"class" : "wikitable plainrowheaders wikiepisodetable"})
table

    f = open('output.csv', 'w')
    for row in table.findAll("th"):
        cells = row.findAll("td")
        if len(cells) == 7:

            No_overall = cells[0].find(text = True)

            No_in_season = cells[1].find(text = True)

            Title = cells[2].find(text = True)

            Directed_by = cells[3].find(text = True)

            Written_by = cells[4].find(text = True)

            Original_air_date = cells[5].find(text = True).replace(',','')

            US_viewers = cells[6].find(text = True).replace('.','')

            line = No_overall  + "," + No_in_season + "," + Title + "," +          
    Directed_by +"," + Written_by + "," + Original_air_date + "," +      
    US_viewers + "\n"

            print(line)

            f.write(write_to_file)

表.findAll(“th”):中的行
不正确
tr
是表中的一行单元格。您无法从
findAll(“th”)

将表中的行更改为
。findAll(“tr”):
您的代码将正常工作

检查包含两个标题单元格和两个数据单元格的简单HTML表格:

<table>
  <tr>
    <th>Month</th>
    <th>Savings</th>
  </tr>
  <tr>
    <td>January</td>
    <td>$100</td>
  </tr>
  <tr>
    <td>February</td>
    <td>$80</td>
  </tr>
</table>

月
储蓄
一月
$100
二月
$80
编辑: 以一行输出为例:

<tr class="vevent" style="text-align:center;background:inherit">
<th id="ep9" scope="row" style="text-align:center">9</th>
<td>9</td>
<td class="summary" style="text-align:left">"<a href="/wiki/Baelor" title="Baelor">Baelor</a>"</td>
<td><a href="/wiki/Alan_Taylor_(director)" title="Alan Taylor (director)">Alan Taylor</a></td>
<td>David Benioff &amp; D. B. Weiss</td>
<td>June 12, 2011<span style="display:none"> (<span class="bday dtstart published updated">2011-06-12</span>)</span></td>
<td>2.66<sup class="reference" id="cite_ref-26"><a href="#cite_note-26">[26]</a></sup></td>
</tr>

9
9
""
贝尼奥夫;丹尼尔·威斯
2011年6月12日(2011-06-12)
2.66

共有6对
td
标签

出了什么问题?代码的哪一部分没有按预期工作?我的教授说,对于这个表,len(cells)不等于7,因此我丢失了所有其他数据。我可以像len(cells)==(行、列)那样编写代码吗?这会给我整个数据表吗?我把它改成了‘tr’,并且有同样的问题。显然,“len(cells)==7”是不正确的。Python会识别(行、列)还是应该输入实际表单元格的数量?我的印象是,单元格的长度就是列数。谢谢。@SarahMcNamara是6而不是7。您可以打印行并查看它。谢谢。如果我使用6而不是7,我会得到一个数据丢失的错误。我尝试使用11行,因为有11行,77行,因为总共有77个单元格,我仍然得到一个空的.csv文件。我仍然看不出我的代码有什么问题。您可以打印行并检查其长度