SeleniumとBeautifulSoupを使っています。
htmlの中に
<a href="URL1">検索文字列</a>
<a href="URL2">aaaaaaaaaa</a>
<a href="URL3">bbbbbbbbbb</a>
<a href="URL4">検索文字列</a>
<a href="URL5">ccccccccc</a>
<a data-ratevent="click" data-ratid="pull" href="#" onclick="mJump('/app/>ddddd</a>
という記述があったとしてURL4を取り出したいです。そこで、下記のようにしました。
Python
1 2 driver = webdriver.Chrome(r"\chromedriver.exe") 3 html = driver.page_source.encode('utf-8') 4 soup = BeautifulSoup(html, "html.parser") 5 6 Murl=[] 7 for f in soup.find_all('a'): 8 if f.getText() == "検索文字": 9 Murl.append(f) 10 print(Murl) 11 NextURL=str(Murl[1].get('href')) 12
Murlの中にaタグのものが全部入ります。
一度実行してprintを確認し、aタグの中から選択し(この場合2番目にはいってたのでMurl[1]とした)とすることでURLを取り出しました。
一応、これで使えてはいるのですが、hrefの中のURLを取り出すのに、for文とかif文とか使って、その後にhref属性の中身を取り出し、とか、もう少し簡単にできる命令文とかないのかな、とか簡潔にできないかな、と思ってしまいました。
こうした方が簡単だよ、とか、こんなもんだよ、とかご意見頂ければありがたいです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。