検索して一致した文字列のhrefタグはどうやれば取得できるでしょうか。
re.search(r"privacy policy|プライバシーポリシー|個人情報", html1).start()
htmlタグからリンクを取得したことはあるのですが、
検索して見つかった文字列のタグをキーとしてhrefリンクを取得する方法がわかりません。
「個人情報」という文字列をキーとしてhrefリンクを取得する方法はあるでしょうか。
python
1 priv_htm = re.search(r"privacy policy|プライバシーポリシー|個人情報", html1).start() 2 if priv_htm != -1: 3 print(priv_htm) 4 print(re.search(r"privacy policy|プライバシーポリシー|個人情報", html1)) 5 print("hrefを取得します") 6 # ここにhrefを取得する処理を入れたい 7 else: print("ありませんでした")
html1の中身
以下のhref のリンクを取得したいです。
html
1<li> 2 <a href="/orj/privacypolicy.shtml"> 3 個人情報について 4 </a> 5</li> 6 7<!-- 8<a href="/orj/privacypolicy.shtml">までの位置関係↓ 9html > body#index.home > div#page > section#content > div#right > 10div.footer.clearfix > div.footer-item.footer-right > 11ul.footer-category.service > li > a 12-->
できました<3
jun68ykt様のアドバイスのおかげで解決しました。text =
で指定できるとは(≧▽≦) ありがとうございますヽ(`▽´)/
python
1from bs4 import BeautifulSoup 2import requests 3import re 4""" 5privacy policyまたはプライバシーポリシー、個人情報がサイトにあるか。 6あればTrueなければFalse 7""" 8import warnings 9warnings.filterwarnings('ignore') 10 11def get_html(): 12 """ 13 - bs4, requestsが必要 14 スクレイピングするならこの関数を最初に使う 15 指定したURLのhtml文書を整列して.htmlに保存。 16 ページからタグを除去して全テキストを抽出。 17 用途: スクレイピングをするときにファイル構造を見る 18 """ 19 r = requests.get("https://www.oreilly.co.jp/index.shtml") 20 r.encoding = r.apparent_encoding 21 html_doc = r.text 22 soup = BeautifulSoup(html_doc) 23 24 html1 = open('Oreilly.html', 'w') 25 html1.write(soup.prettify()) 26 html1 = soup.prettify() 27 28 text1 = open('Oreilly.text', 'w') 29 text1.write(soup.get_text()) 30 text1 = soup.get_text() 31 32 """ 33 以下からは需要に応じてオプション 34 プライバシーポリシー系を探す 35 Privacy policy、プライバシーポリシー、個人情報 36 """ 37 38 pattern = r"privacy policy|個人情報|プライバシーポリシー" 39 40 with open('Oreilly.html') as f: 41 soup = BeautifulSoup(f.read(), 'lxml') 42 43 for link in soup.findAll('a', text=re.compile(pattern, re.IGNORECASE)): 44 print(link['href']) 45 46 47get_html()
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/20 10:51
2018/10/20 10:52
2018/10/20 11:04
2018/10/20 11:15
2018/10/20 11:27