0
我試圖從X個HTML文件解析特定內容到單個TXT文件。Python - 將多個HTML頁解析爲單個TXT文件
我已經dirtily編碼如下:
#!/usr/bin/python
import sys, mechanize, BeautifulSoup
def parsedata():
##do stuff
prvitekst = soup.find(text='Random Number')
prvikesh = prvitekst.findNextSiblings('td')
drugitekst = soup.find(text='Random Month/Yeare')
drugikesh = drugitekst.findNextSiblings('td')
trechitekst = soup.find(text='Small Random Number')
trechikesh = trechitekst.findNextSiblings('td')
content = prvikesh + ";" + drugikesh + ";" + trechikesh + ";"
writeFile(content);
def readFile(id):
fi = open('result/page-%s.html' % id, 'r');
def writeFile(content):
f = open('parsed.txt', 'a')
f.write(content,"\n")
f.close();
def main(start):
##initialize vars
id = int(start)
page = readFile(id)
soup = BeautifulSoup(page)
print soup.prettify()
readFile(id)
for id in range(1000000000):
parsedata()
id = id + 1
continue
main(sys.argv[1]);
雖然HTML部分我嘗試刮看起來像這樣
<tr style="height:40px; background-color:#f0f0f0;"><td colspan="4" class="textLargeBold" style="border-bottom: solid 1px #c4c4c4;">Random Details</td></tr>
<tr class="text">
<td align="left" valign="top"><b>Type</b></td>
<td align="left" valign="top">Color</td>
<td align="left" valign="top"><b>Random Number</b></td>
<td align="left" valign="top">213523123123123</td>
</tr>
<tr class="text"
<td align="left" valign="top"><b>Random Month/Year</b></td>
<td align="left" valign="top">12/13</td>
<td align="left" valign="top"><b>Small Random Number</b></td>
<td align="left" valign="top">13233</td>
</tr>
我想第一個後過來的細節。因此如果我正在尋找Typem,我想讓它向我展示Color。
以及最終的課程我希望獲得的內容以類似於CSV的格式進行分析。
類型;隨機數;隨機月/年
應該解析
Color;213523123123123;12/13
ofcourse在我已經做我不是搜索類型的代碼,但可以很容易地改變。
編輯:固定intendation
請修正你的代碼的縮進。 – ThiefMaster 2011-06-11 20:12:28
固定縮進 – Quantum 2011-06-11 20:27:53
這種類型的任務(找到一些文本,然後找到從該點開始的另一個文本)很容易在xpath中定義: '//td/b[text()="Type"]/../follow -sibling :: TD [1] /文本()' – 2011-06-12 00:31:54