#<link rel='canonical' href='http://www.samplewebsite.com/image/5434553/' />
#I am trying to grab the text in href
image = str(Soup)
image_re = re.compile('\<link rel=\'cononical\' href=')
image_pat = re.findall(image_re, image)
print image_pa
#>> []
#Thanks!
答えて
編集:これは私がこの質問の前のバージョンで見たと思ったBeautifulSoupパッケージを使用します。
編集:より簡単で、これは次のとおりです。代わりにすべてのことの
soup = BeautifulSoup(document)
links = soup.findAll('link', rel='canonical')
for link in links:
print link['href']
、あなたが使用することができます。
soup = BeautifulSoup(document)
links = soup("link")
for link in links:
if "rel" in link and link["rel"] == 'canonical':
print link["href"]
+1、方法クール。どのライブラリが必要ですか、そして/または、これを動作させるためにどのモジュールをインポートする必要がありますか? –
あなたの既に使用しているようにBeautifulSupp、 – jknupp
私は質問を投稿した人ではありません(さらに、私が見ていた質問のバージョンではBeautifulSoupの参照が見つかりませんでした)。私はBeautifulSoupを見ることができますが、将来の初心者は、あなたがコメントやあなたの答えにそれを追加した場合、より多くの情報が役に立つかもしれないと思っていました。 –
使用の2つの正規表現:
import re
link_tag_re = re.compile(r'(<link[^>]*>')
# capture all link tags in your text with it. Then for each of those, use:
href_capture = re.compile(r'href\s*=\s*(\'[^\']*\'|"[^"]*")')
最初の正規表現の意志<link>
タグ全体をキャプチャします。 2番目はhref="something"
またはhref='something'
を探します。
一般的に、この問題は完全に規則的な言語問題ですが、HTML用のXMLパーサを使用してください。この種のものに使うのはずっと簡単で、問題を起こす可能性は低いです。
lxml.html
またはBeautifulSoup
などのHTMLパーサーを使用する必要があります。しかし、あなたは、単一のlink
のhref
をつかむしたい場合は、あまりにも簡単な正規表現を使用することができます。
re.findall(r"href=(['\"])([^\1]*)\1", url)
あなたがデータに適切なHTMLパーサを使用する方がよいでしょうが、あなたが本当に行きたい場合
>>> data = "... <link rel='canonical' href='http://www.samplewebsite.com/image/5434553/' /> ..."
>>>
>>> re.search("<link[^>]+?rel='canonical'[^>]+?href='([^']+)", x).group(1)
'http://www.samplewebsite.com/image/5434553/'
>>>
また、HTMLでは二重引用符ではなく一重引用符を使用することにも注意してください。
これは、あなたが与えてくれたhtmlの例と一致するように、正規表現のようになります。
<link rel='canonical' href='(\S+)'
をしかし、私は正規表現が適切なツールであるかはわかりません。この正規表現は、値に二重引用符(または引用符を使用しない)を使用すると失敗します。または、relとhrefが回っている場合
BeautifulSoupのようなものを使用して、すべてのrel canonical href値を見つけて収集することをおすすめします。
- 1. 正規表現を使用してコンテンツを取得する正規表現
- 2. 使用してデータを取得する正規表現
- 3. 正規表現を使用してHTMLからすべてのYouTube iframeを取得する方法
- 4. PHPの正規表現を使用してhtmlページからデータを取得
- 5. preg_replace、正規表現を取得する正規表現
- 6. 正規表現を取得する正規表現
- 7. jQuery正規表現を使用してID属性を取得
- 8. 正規表現:グループ名を取得する方法
- 9. 正規表現のヘルプを使用してスパンIDでコンテンツを取得する
- 10. 正規表現を使用してNSStringからURLを取得する
- 11. 正規表現を使用して2つのパイプ間ですべてのコンテンツを取得する方法
- 12. 正規表現のC#を使用してasp.netでhrefの値を取得する方法?
- 13. 正規表現を使用して角カッコからコンテンツを取得する方法は?
- 14. phpと正規表現を使用してウェブサイトからリンクを取得する方法
- 15. PHPで正規表現を使用して日付文字列の位置を取得する方法
- 16. javaで正規表現を使用して部分文字列を取得する方法は?
- 17. 正規表現のサブグループを取得
- 18. 正規表現を使用して文字列パターンから数字を取得
- 19. WatiNで正規表現を使用する方法
- 20. Clojure:正規表現で変数を使用する方法は?
- 21. proftpdのディレクトリパスに正規表現を使用する方法
- 22. AngularJSで正規表現を使用する方法$ httpBackend ExpectGET
- 23. PHPを使用して正規表現を使用して文字列の一部を取得しますか?
- 24. 正規表現を使用して文字列のSSNをマスクする方法
- 25. wgetで正規表現を使用してファイルを拒否する方法は?
- 26. 正規表現を使用して日付形式を検証する方法
- 27. 正規表現を使用してテキストイタリック体のマークアップをHTMLに変換する
- 28. 正規表現を使用したT-SQL検索html?
- 29. 正規表現を使用して情報を取得するperlを使用する
- 30. ドットマッチオールモードを使用した正規表現
「スープ」はどのタイプですか? – soulcheck