

複数ページのテーブルをスクレイピングすることはできているのですが、その取得結果すべてをCSVに出力できずに困っています。  
組んでみたコードでは、2番めのURLから取得したテーブルのみが、CSVとして出力されています。  
すべてのURLから取得したテーブルをすべてCSVに出力するための工夫をご教示ください。

[code]

    import csv
    import urllib.request
    from bs4 import BeautifulSoup
    import pandas as pd
    urls = ['http://honya.univ.coop/ranking_lst.php?rankingcd=001',
    'http://honya.univ.coop/ranking_lst.php?rankingcd=002',
    ]
    
    for url in urls:
      html = urllib.request.urlopen(url)
      bsObj = BeautifulSoup(html, "html.parser")
      table = bsObj.findAll("table", {"class":"rankingTable"})[0]
      tables = table.findAll("tr")
      print(tables)
    
      with open("newbooks.csv", "w", encoding='utf-8') as file:
        writer = csv.writer(file)
        for row in tables:
            csvRow = []
            for cell in row.findAll(['td', 'th']):
                csvRow.append(cell.get_text())
            writer.writerow(csvRow)
    
    pd.read_csv("newbooks.csv")
    
[/code]


CC BY-SA 4.0
2020-05-13T07:03:31.663
66561
2020-05-13T08:53:52.567
2020-05-13T07:54:03.740
40122
question
python
複数ページのテーブルをスクレイピングした結果をすべてCSV出力する


現状のコードでは `open` でファイルを開く時に上書きモード `w`
が指定されているので、ループ処理でファイルを開くたびにリセットされ、最後の結果だけが出力されている状態なのだと思います。

以下の通りファイルオープン時に **追記モード** `a` を指定してみてください。

[code]

    open("newbooks.csv", "a", encoding='utf-8')
    
[/code]


CC BY-SA 4.0
2020-05-13T07:13:27.193
66562
2020-05-13T07:13:27.193
3060
66561
answer


pandas には [pandas.read_html](https://pandas.pydata.org/pandas-
docs/stable/reference/api/pandas.read_html.html)
というメソッドがありますので、それを使うのも良いかと思います。

[code]

    import pandas as pd
    
    urls = [
      'http://honya.univ.coop/ranking_lst.php?rankingcd=001',
      'http://honya.univ.coop/ranking_lst.php?rankingcd=002',
    ]
    
    df = pd.concat(
      [pd.concat(pd.read_html(url, header=0, attrs={'class': 'rankingTable'}), axis=0)
       for url in urls],
      axis=0)
    df.to_csv('newbooks.csv', encoding='utf-8', index=False)
    
[/code]

**newbooks.csv**

[code]

    順位,書名,著者,出版社,本体価格,発売月,ISBN
    1,大衆の反逆,ホセ・オルテガ・イ・ガセト,岩波書店,"1,070 円",2020/04,9784003423110
    2,トラペジウム,高山一実,ＫＡＤＯＫＡＷＡ,680 円,2020/04,9784041026441
    3,勉強の哲学,千葉雅也,文藝春秋,700 円,2020/03,9784167914639
                           :
    
    28,侘助ノ白,佐伯泰英,文藝春秋,730 円,2020/05,9784167914943
    29,対談集歴史を考える,司馬遼太郎,文藝春秋,670 円,2020/05,9784167914998
    30,まるごと腐女子のつづ井さん,つづ井,文藝春秋,900 円,2020/05,9784167915001
    1,教育は何を評価してきたのか,本田由紀,岩波書店,840 円,2020/03,9784004318293
    2,感染症は実在しない,岩田健太郎,集英社インターナショナル,980 円,2020/04,9784797680522
    3,５Ｇ,森川博之,岩波書店,860 円,2020/04,9784004318316
                           :
    
[/code]


CC BY-SA 4.0
2020-05-13T08:39:13.857
66568
2020-05-13T08:53:52.567
2020-05-13T08:53:52.567
66561
answer