24

HTML ドキュメント内のすべてのリンクを変更できる必要があります。を使用する必要があることはわかっていますがSoupStrainer、実装方法について 100% 肯定的ではありません。誰かが私を良いリソースに誘導したり、コード例を提供したりできれば、それは非常にありがたいです.

ありがとう。

4

3 に答える 3

44

たぶん、このようなものがうまくいくでしょうか?(残念ながら、目の前に Python インタープリターはありません)

from bs4 import BeautifulSoup
soup = BeautifulSoup('<p>Blah blah blah <a href="http://google.com">Google</a></p>')
for a in soup.findAll('a'):
  a['href'] = a['href'].replace("google", "mysite")

result = str(soup)
于 2009-01-20T03:02:34.150 に答える
32
from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup('<p>Blah blah blah <a href="http://google.com">Google</a></p>')
for a in soup.findAll('a'):
    a['href'] = a['href'].replace("google", "mysite")
print str(soup)

これは Lusid のソリューションですが、目の前に Python インタープリターがなかったため、テストできず、いくつかのエラーが発生しました。作業状況を掲載したいと思います。ありがとうルシッド!

于 2009-01-20T03:09:49.097 に答える
8

私はこれを試してみましたが、うまくいきました。それぞれのマッチングに正規表現を使用しない方が簡単です'href':

from bs4 import BeautifulSoup as bs
soup = bs(htmltext)
for a in soup.findAll('a'):
    a['href'] = "mysite"

bs4 docsで確認してください。

于 2014-03-22T00:03:17.017 に答える