私のハードドライブ上にある1200個以上の.htmファイルの行を削り取ろうとしています。私のコンピュータでは、彼らはここに 'ファイル:///home/phi/Data/NHL/pl07-08/PL020001.HTM'です。これらの.htmファイルは、* 20001.htmから* 21230.htmまで順次です。私の計画は、スプレッドシートアプリケーションを使用してMySQLまたはSQLiteでデータを最終的に投げ込むことです。このプロセスからクリーンな.csvファイルを取得することができればまっすぐです。複数のhtmlファイルをCSVにスクラップ
これはコード(Python)での私の最初の試みであり、私は厄介なペンティアムIVにUbuntu 9.04をインストールしました。言うまでもなく、私はnewbであり、いくつかのロードブロッキングを持っています。
ディレクトリ内のすべてのファイルを順番に処理するにはどうすればよいですか。これを機械化できますか? Mechanical/Python/BeautifulSoupは 'file:///'スタイルのURLを読んだり、/home/phi/Data/NHL/pl07-08/PL020001.HTMにそれを指す別の方法がありますか?これを100または250ファイル単位で行うか、すべて1230を送信するのは賢明ですか?
この「<tr class="evenColor">
」で始まり、「</tr>
」で終わる行が必要です。理想的には、「SHOT」|「MISS」|「GOAL」を含む行だけが必要ですが、行全体(すべての列)が必要です。 "GOAL"は太字であるため、これを指定する必要がありますか? htmファイルごとに3つのテーブルがあります。
また、親ファイルの名前(pl020001.htm)を私が掻き集める行に含めることを願っています。私はそれをどこから始めるべきかも知らない。これはこれまで私が持っているものです:
#/usr/bin/python
from BeautifulSoup import BeautifulSoup
import re
from mechanize import Browser
mech = Browser()
url = "file:///home/phi/Data/NHL/pl07-08/PL020001.HTM"
##but how do I do multiple urls/files? PL02*.HTM?
page = mech.open(url)
html = page.read()
soup = BeautifulSoup(html)
##this confuses me and seems redundant
pl = open("input_file.html","r")
chances = open("chancesforsql.csv,"w")
table = soup.find("table", border=0)
for row in table.findAll 'tr class="evenColor"'
#should I do this instead of before?
outfile = open("shooting.csv", "w")
##how do I end it?
私はIDLEなどを使用してください。 Ubuntu 9.04のターミナルだけ?
は、行のHTMLコンテンツです: の
'python経由でCSVを書く' これを行う方法はわかりませんが、知りたいです。私は 'import csv'が必要ですか? – northnodewolf
@northnodewolf:HTMLテーブルから作成するHTML構造とCSVについての新しい事実を示す新しい質問を投稿してください。 –