私はちょうど1500を超えるhtmlページ(1.htmlから1500.html)を持っています。私は美しいスープを使ってコードを書いています。これは、必要なデータの大部分を抽出しますが、テーブル内のデータの一部を「欠落」します。複数のhtmlファイルのテキストを1つのcsvファイルにスクラップ
マイ入力:例えば、ファイル1500.html
マイコード:
#!/usr/bin/env python
import glob
import codecs
from BeautifulSoup import BeautifulSoup
with codecs.open('dump2.csv', "w", encoding="utf-8") as csvfile:
for file in glob.glob('*html*'):
print 'Processing', file
soup = BeautifulSoup(open(file).read())
rows = soup.findAll('tr')
for tr in rows:
cols = tr.findAll('td')
#print >> csvfile,"#".join(col.string for col in cols)
#print >> csvfile,"#".join(td.find(text=True))
for col in cols:
print >> csvfile, col.string
print >> csvfile, "==="
print >> csvfile, "***"
出力:
一つのCSVファイル、1500のテキストの行や列を持ちますデータ。何らかの理由で私のコードが必要なデータをすべて抜き出してしまいますが、データの一部が失われてしまいます。たとえば、テーブルの先頭にあるAddress1とAddress2のデータが出力されません。私は*と===セパレータを入れるようにコードを修正しました。それからperlを使ってクリーンなCSVファイルを作成しました。残念ながら、私が探しているすべてのデータを得るためにコードをどのように動作させるべきかわかりません!
こんにちはTheNIK、すべてのhtmlファイルは書式の点で全く同じですが、唯一の違いはtrタグ – Lulu