0

id='revSAR'Python 正規表現を使用して、以下の HTML タグからすべての URL を取得しようとしています。

<a id='revSAR' href='http://www.amazon.com/Altec-Lansing-inMotion-Mobile-Speaker/product-reviews/B000EDKP8U/ref=cm_cr_dp_see_all_summary?ie=UTF8&showViewpoints=1&sortBy=byRankDescending' class='txtsmall noTextDecoration'>
  See all 136 customer reviews
</a>

以下のコードを試しましたが、うまくいきません (何も表示されません)。

regex = b'<a id="revSAR" href="(.+?)" class="txtsmall noTextDecoration">(.+?)</a>'
pattern=re.compile(regex)
rev_url=re.findall(pattern,txt)
print ('reviews url: ' + str(rev_url))
4

4 に答える 4

0

まず、正規表現が機能しなかったのはなぜですか? あなたのhtmlでは、属性は一重引用符を使用して引用されていますが、正規表現では二重引用符が使用されています。また、href 属性だけを気にする必要があります。正規表現として何かを試してみてくださいhref=['"](.+?)['"]。大文字と小文字を無視するスイッチを使用する方が良いでしょう

しかし、正規表現を使用してhtmlを解析するという非常に悪い決定です。これを通過してください

于 2013-08-20T06:02:36.987 に答える