前提・実現したいこと
一部のhref属性を、リストの順に置換していきたいです。
BeautifulSoupと正規表現で置換したいhref属性を取得できたのですが
リストを参照し、順に置換する方法がわかりません。
(replaceやsubを使い、ひとつのhref属性を置換する方法はわかったのですが
順に置換ができませんでした)
※置換する対象のhref属性
・クラス名がsample
・できれば、https://www.change.com/◯◯/testの◯◯のみ置換
教えていただけましたら幸いです。よろしくお願いいたします。
該当のソースコード
html
1<!-- リスト link_after = ['after_ABC', 'after2_AB', 'after_045']--> 2 3<body> 4 5<a href="https://www.nochange.com/"></a> <!-- →変更しない --> 6 7<div class="sample"> 8 <a href="https://www.change.com/before_a/test"></a> <!-- →https://www.change.com/リスト[0]/test に変更--> 9</div> 10<div class="sample"> 11 <a href="https://www.change.com/before_b/test"></a><!-- →https://www.change.com/リスト[1]/test に変更--> 12</div> 13<div class="sample"> 14 <a href="https://www.change.com/before_c/test"></a><!-- →https://www.change.com/リスト[2]/test に変更--> 15</div> 16 17<a href="https://www.none.com/"></a><!-- →変更しない --> 18 19</body>
python
1import re 2from bs4 import BeautifulSoup 3 4html = 'text.html' 5pattern = r'https://www.change.com/(.+)/test' 6link_after = ['after_ABC', 'after2_AB', 'after_045'] 7 8soup = BeautifulSoup(open(html, encoding='utf-8'), 'html.parser') 9 10for x in soup.select('.sample a'): 11 link_before = x.get('href') 12 mo = re.findall(pattern, link_before)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/25 09:19