Python 3.4です。
手元にURLリストを持っており、それを元にしてリンク先のページのhtmlデータを一括してデータシートにしたいと考えています。
データを手に入れるところまでは上手く行っていそうなのですが、書き込むところが上手く行きません。
お助けいただければ幸いです。
import pandas as pd #urlリストを定義 data = pd.read_table("data.csv", encoding="utf-8") urls = data["url"] import bs4 import urllib.request import csv #データ抽出 for url in urls: html = urllib.request.urlopen(url) soup = bs4.BeautifulSoup(html, 'html.parser') page=soup.find_all("div") #csvに出力 #一つのマスに1ページのデータを入れたい #ここが上手く動かない f = open('output.csv', 'w' , encoding='UTF-8') writer = csv.writer(f, lineterminator='\n') csvlist = [] csvlist.append(page) # 出力 writer.writerow(csvlist) # ファイルクローズ f.close()
うまく行かないの詳細と、得たいCSVファイルの具体的なデータ例(内容)を追記ください。
不十分な質問で申し訳ありません。最終的には、"URL", "page"と2列になったデータシートを作成し、別のソフトで解析を考えています。現状としては、pageで、<div>XXX</div><div>YYY</div><div>ZZZ</div>みたいなページのデータの取得までは上手く行くのですが、csvに書き込もうとすると、あいだの,を認識してしまうためか、一つのページが一つのセルではなく複数行にまたがってしまいます。
複数行にまたがってしまうのは書込時ではなくCSVを開いた結果表示上ではないでしょうか?とりあえずその前提で回答しました。
回答2件
あなたの回答
tips
プレビュー