python スクレイピング ループごとに新規ファイルを作成する

実現したいこと

以下のコードがあり既存CSVにURLがあり
そのURLからリンク先にデータ(リンクデータ)を取りに行ってます。
既存CSVから1つめのリンク先に遷移してデータを取りCSV(01.CSV)を作成して書き出しを行う、
次に既存CSVから2つめのリンク先に遷移してデータを取りCSV(02.CSV)を作成して書き出しを行う

・ループ実行ごとに新規CSVファイルが作成されそこにデータが書き出される
・2回ループが実行されれば2つのファイルが作成される
・ファイルに名はナンバーが記載される

上記のことを実現したいです。

該当のソースコード

import pandas as pd import os import time import datetime import csv import glob from bs4 import BeautifulSoup import requests df = pd.read_csv('C:\\Users\\thumb\\s1_dmm.csv', encoding="utf-8") with open('C:\\Users\\thumb\\s2_dmm.csv','a', encoding='utf-8',newline='') as f: writer = csv.writer(f) writer.writerow(header1) for i in range(len(df)): # CSVデータのi行0列目のデータを取得 url = df.iloc[i, 4] list_head = df.iloc[i, 0:5] response = requests.get(url=url, headers=headers, cookies=cookie) html = response.content res = requests.get(url) res.raise_for_status() soup = BeautifulSoup(html, "html.parser") writer.writerow(list_head) for link in soup. find_all('img',class_='mg-b6'): print(link.get("src")) row = [link.get("src")] writer.writerow(row) print(df)

試したこと

ファイルにナンバーを振るなどの動作はできますが、
for文でループするごとにフ新規ァイルを書き出す方法がわからず試せていません。

やりたいことを実現できる情報などいただければと思います。
よろしくお願いいたします。

コメントを投稿

0 コメント