Python Webスクレイピング
- Webスクレイピング
# webスクレイピング1 日本経済新聞のHPから日経平均を取得 # https://qiita.com/hirouen/items/7bc7fa05cc2d774edf44 # requests # https://requests-docs-ja.readthedocs.io/en/latest/ # BeautifulSoup # https://www.crummy.com/software/BeautifulSoup/bs4/doc/ # このあたりをひっかけてくる # <div class="m-miH01C_list js-miH01" id="js-ticker_list"><ul><li class="m-miH01C_item"> # <div class="m-miH01C_cell m-miH01C_cell_col5" data-id="JSID_JpnIndex"><a href="/markets/worldidx/chart/nk225/" title="11/13 15:15 大引"><span class="m-miH01C_exchange">日経平均</span><span class="m-miH01C_rate">21,810.52</span><span class="m-miH01C_comparison minus">-459.36</span></a></div> # <div class="m-miH01C_cell m-miH01C_cell_col5" data-id="JSID_DowJones"><a href="/markets/kaigai/" title="11/13 16:20 "><span class="m-miH01C_exchange">NYダウ</span><span class="m-miH01C_rate">25,286.49</span><span class="m-miH01C_comparison minus">-100.69</span></a></div> # <div class="m-miH01C_cell m-miH01C_cell_col5" data-id="JSID_YenDollarExchange"><a href="/markets/kawase/" title="11/14 8:25"><span class="m-miH01C_exchange">ドル円</span><span class="m-miH01C_rate">113.78-79</span><span class="m-miH01C_comparison minus">-0.28</span></a></div> import requests from bs4 import BeautifulSoup url = 'https://www.nikkei.com/' html = requests.get(url) # html.text で全文表示 soup = BeautifulSoup(html.text,"html.parser") span = soup.find_all("span") nikkei_heikin = "" for tag in span: # print(tag) # print(tag.get("class")) string_ = tag.get("class")[0] # <span class="m-wficon triDown"></span> をtag.get("class")すると # ['m-wficon', 'triDown']のように、スペースで分割されてリストになるらしい # 元のコードはstring_ = tag.get("class").Pop(0)としてたが、 # そうするとsoupで持ってるhtmlから当該classが消えてしまう(!)ので # string_ =tag.get("class")[0]とした if string_ in "m-miH01C_rate": nikkei_heikin = tag.string break print(nikkei_heikin) # 21,810.52 (2018/11/14 08:26実行時)