$ cd ~
vi kabu.py
import requests from bs4 import BeautifulSoup def get_stockprice(code): base_url = "http://stocks.finance.yahoo.co.jp/stocks/detail/" query = {} query["code"] = code + ".T" ret = requests.get(base_url,params=query) soup = BeautifulSoup(ret.content,"lxml") stocktable = soup.find('table', {'class':'stocksTable'}) symbol = stocktable.findAll('th', {'class':'symbol'})[0].text stockprice = stocktable.findAll('td', {'class':'stoksPrice'})[1].text return symbol,stockprice if __name__ == "__main__": symbol,stockprice = get_stockprice("6758") print (symbol,stockprice) 実行 python kabu.py sample
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib.request
from bs4 import BeautifulSoup
url = “http://www.yahoo.co.jp”
htmlfp = urllib.request.urlopen(url)
html = htmlfp.read().decode(“utf-8”, “replace”)
htmlfp.close()
soup = BeautifulSoup(html)
for link in soup.findAll(“a”):
print (link)
sample
# coding: UTF-8
import urllib.request
from bs4 import BeautifulSoup
# アクセスするURL
url = “http://www.nikkei.com/”
# URLにアクセスする htmlが帰ってくる → <html><head><title>経済、株価、ビジネス、
政治のニュース:日経電子版</title></head><body….
html = urllib.request.urlopen(url)
# htmlをBeautifulSoupで扱う
soup = BeautifulSoup(html, “html.parser”)
# タイトル要素を取得する → <title>経済、株価、ビジネス、政治のニュース:日経電子>版</title>
title_tag = soup.title
# 要素の文字列を取得する → 経済、株価、ビジネス、政治のニュース:日経電子版
title = title_tag.string
# タイトル要素を出力
print (title_tag)
# タイトルを文字列を出力
sample
# coding: UTF-8
import urllib.request
from bs4 import BeautifulSoup
# アクセスするURL
url = “http://www.nikkei.com/markets/kabu/”
# URLにアクセスする htmlが帰ってくる → <html><head><title>経済、株価、ビジネス、
政治のニュース:日経電子版</title></head><body….
html = urllib.request.urlopen(url)
# htmlをBeautifulSoupで扱う
soup = BeautifulSoup(html, “html.parser”)
# span要素全てを摘出する→全てのspan要素が配列に入ってかえされます→[<span class=”m-wficon triDown”></span>, <span class=”l-h…
span = soup.find_all(“span”)
# print時のエラーとならないように最初に宣言しておきます。
nikkei_heikin = “”
# for分で全てのspan要素の中からClass=”mkc-stock_prices”となっている物を探します
for tag in span:
# classの設定がされていない要素は、tag.get(“class”).pop(0)を行うことのできな
いでエラーとなるため、tryでエラーを回避する
try:
# tagの中からclass=”n”のnの文字列を摘出します。複数classが設定されている
場合があるので
# get関数では配列で帰ってくる。そのため配列の関数pop(0)により、配列の一>番最初を摘出する
# <span class=”hoge” class=”foo”> → [“hoge”,”foo”] → hoge
string_ = tag.get(“class”).pop(0)
# 摘出したclassの文字列にmkc-stock_pricesと設定されているかを調べます
if string_ in “mkc-stock_prices”:
# mkc-stock_pricesが設定されているのでtagで囲まれた文字列を.stringで
あぶり出します
nikkei_heikin = tag.string
# 摘出が完了したのでfor分を抜けます
break
except:
# パス→何も処理を行わない
pass
# 摘出した日経平均株価を出力します。
print (nikkei_heikin)
コメント