簡體   English   中英

使用Python搜索特定的HTML字符串

[英]Searching for specific HTML string using Python

什么模塊是編寫Python程序的最佳方式,該程序可以搜索數百個html文檔並刪除給定的html字符串。 例如,如果我有一個<a href="test.html">Test</a>的html文檔,而我想從具有該文檔的每個html頁面中刪除它。

非常感謝您的幫助,我不需要有人為我編寫程序,只是在正確方向上提供了幫助。

如果您要搜索的字符串原樣位於HTML中,那么簡單的字符串替換就可以了:

old_html = open(html_file).read()
new_html = old_html.replace(my_string, "")
if new_html != old_html:
    open(html_file, "w").write(new_html)

作為字符串實際不在HTML中的示例,假設您正在按照您所說的那樣查找“ Test”。 您是否希望它與這些HTML片段匹配?:

<a href='test.html'>Test</a>
<A HREF='test.html'>Test</A>
<a href="test.html" class="external">Test</a>
<a href="test.html">Tes&#116;</a>

依此類推:“相同” HTML可以用許多不同的方式表示。 如果您知道HTML中使用的精確字符,那么簡單的字符串替換就可以了。 如果需要在HTML語義級別進行匹配,則需要使用更高級的工具(例如BeautifulSoup),但即使在不受刪除影響的部分中,您也可能會獲得與開始時非常不同的HTML輸出。 ,因為整個文件將被解析並重構。

要對許多文件執行代碼,您會發現os.path.walk可用於在樹中查找文件,或者glob.glob用於將文件名匹配到類似shell的通配符模式。

htmllib

該模塊定義了一個類,該類可以用作解析以超文本標記語言(HTML)格式化的文本文件的基礎。 該類與I / O沒有直接關系,它必須通過方法以字符串形式提供輸入,並調用“格式化程序”對象的方法以產生輸出。 HTMLParser類旨在用作其他類的基類,以增加功能,並允許擴展或覆蓋其大多數方法。 反過來,該類又繼承自sgmllib模塊中定義的SGMLParser類。 HTMLParser實現支持RFC 1866中描述的HTML 2.0語言。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM