aタグを全て取得したいとする。
from bs4 import BeautifulSoup
html = """
<html><body>
<table id="tp_market_sub" style="margin:4px 0 0 20px; font-size:13px;">
<tr>
<td><a href="/news/marketnews/?b=n201807300012">シカゴ日経・ADR</a> <img src="/images/cmn/new.gif" title="new"/></td>
<td><a href="/news/marketnews/?b=n201807300013">米国株式概況</a> <img src="/images/cmn/new.gif" title="new"/></td>
<td><a href="/news/marketnews/?b=n201807300014">今日の注目スケジュール</a> <img src="/images/cmn/new.gif" title="new"/></td>
</tr>
</table>
</body></html>
"""
soup = BeautifulSoup(html, 'html.parser')
links = soup.find_all("a")
for a in links:
href = a.attrs["href"]
text = a.string
print(text + " > " + href)
[vagrant@localhost python]$ python3 app.py
シカゴ日経・ADR > /news/marketnews/?b=n201807300012
米国株式概況 > /news/marketnews/?b=n201807300013
今日の注目スケジュール > /news/marketnews/?b=n201807300014
find_allで複数条件を指定したいよね。
html = """ <html><body> <table id="tp_market_sub" style="margin:4px 0 0 20px; font-size:13px;"> <tr> <td id="tp_market_1"><a href="/news/marketnews/?b=n201807300012">シカゴ日経・ADR</a> <img src="/images/cmn/new.gif" title="new"/></td> <td id="tp_market_1"><a href="/news/marketnews/?b=n201807300013">米国株式概況</a> <img src="/images/cmn/new.gif" title="new"/></td> <td id="tp_market_2"><a href="/news/marketnews/?b=n201807300014">今日の注目スケジュール</a> <img src="/images/cmn/new.gif" title="new"/></td> </tr> </table> </body></html> """ links = soup.find_all(id="tp_market_1", "a")
これだと上手くいかない。なんでだろう。。
soup.find_all(‘タグ名’, ‘属性’) だからか。。