厚生労働省の下記のページ↓から
https://www.mhlw.go.jp/stf/seisakunitsuite/bunya/topics_shingata_09444.html
新型コロナを含むaタグのurlを取得しようとしています。
python
1from urllib import request 2from bs4 import BeautifulSoup 3import re 4 5url = "https://www.mhlw.go.jp/stf/seisakunitsuite/bunya/topics_shingata_09444.html" 6 7#get html 8html = request.urlopen(url) 9 10#set BueatifulSoup 11soup = BeautifulSoup(html, "html.parser") 12soup 13 14links = [url.get('href') for url in soup.find_all('a', text=re.compile('新型コロナ'))] 15links
実行結果
python
1['/stf/seisakunitsuite/bunya/0000164708_00001.html'] 2
上記のように実行しているのですが、実行結果のようになぜか一番上のurlしか取得できません。
どのように修正すれば新型コロナのテキストを含むurlを全て取得できるでしょうか?
追記
text= だと aタグのインラインに該当のテキストがあるものしかダメなので、
下記のようにlambda式を使う方法で修正したら無事に動きました。
python
1from urllib import request 2from bs4 import BeautifulSoup 3import re 4 5url = "https://www.mhlw.go.jp/stf/seisakunitsuite/bunya/topics_shingata_09444.html" 6 7#get html 8html = request.urlopen(url) 9 10#set BueatifulSoup 11soup = BeautifulSoup(html, "html.parser") 12 13links = [url.get('href') for url in soup.find_all(name=lambda x: x.name=="a" and "新型コロナ" in x.text)] 14links
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/04/04 13:19