Skip to content

Instantly share code, notes, and snippets.

@tak-akashi
Created July 16, 2018 00:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tak-akashi/05296f0de7fb8e0bc3cb6facb739db64 to your computer and use it in GitHub Desktop.
Save tak-akashi/05296f0de7fb8e0bc3cb6facb739db64 to your computer and use it in GitHub Desktop.
東京証券取引所「空売り比率」推移
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import requests\n",
"from bs4 import BeautifulSoup"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"url = 'https://www.jpx.co.jp/markets/statistics-equities/short-selling/'"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'ISO-8859-1'"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"res = requests.get(url)\n",
"res.encoding"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"# 東証のホームページだとres.encoding = 'ISO-8859-1'となり、res.textが文字化けするため、\n",
"# 以下の行を入れる。そうすると、res.encoding = 'utf-8'となる。\n",
"res.encoding = res.apparent_encoding"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"soup = BeautifulSoup(res.text, 'html.parser')"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"s = soup.find('div', {'class': 'component-normal-table'})"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"a_tags = s.find_all('a')"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"pdf_list = []\n",
"for a_tag in a_tags:\n",
" if a_tag.get('href')[-5] == 'm':\n",
" pdf_list.append(a_tag.get('href'))"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['/markets/statistics-equities/short-selling/nlsgeu0000037ver-att/180713-m.pdf',\n",
" '/markets/statistics-equities/short-selling/nlsgeu0000037t4d-att/180712-m.pdf',\n",
" '/markets/statistics-equities/short-selling/nlsgeu0000037pl7-att/180711-m.pdf',\n",
" '/markets/statistics-equities/short-selling/nlsgeu0000037nj9-att/180710-m.pdf',\n",
" '/markets/statistics-equities/short-selling/nlsgeu0000037jr9-att/180709-m.pdf',\n",
" '/markets/statistics-equities/short-selling/nlsgeu0000037h3w-att/180706-m.pdf',\n",
" '/markets/statistics-equities/short-selling/nlsgeu0000037efl-att/180705-m.pdf',\n",
" '/markets/statistics-equities/short-selling/nlsgeu00000379yi-att/180704-m.pdf',\n",
" '/markets/statistics-equities/short-selling/nlsgeu000003764s-att/180703-m.pdf',\n",
" '/markets/statistics-equities/short-selling/nlsgeu0000037115-att/180702-m.pdf']"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pdf_list"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"base_url = 'https://www.jpx.co.jp'"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"import urllib.request"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"num = len(pdf_list)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"for i, x in enumerate(pdf_list):\n",
" url = base_url + x\n",
" urllib.request.urlretrieve(url,'temp/shortselling'+ str(i) + '.pdf')"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"# 一括処理\n",
"from pdfminer.pdfparser import PDFParser\n",
"from pdfminer.pdfparser import PDFDocument\n",
"from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter\n",
"from pdfminer.pdfparser import PDFPage\n",
"from pdfminer.pdfdevice import PDFDevice\n",
"from pdfminer.converter import PDFPageAggregator\n",
"from pdfminer.converter import TextConverter\n",
"from pdfminer.layout import LAParams\n",
"from pdfminer.layout import LTTextBoxHorizontal"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"from datetime import datetime as dt"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"data = []"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"for i in range(num):\n",
" fp = open('temp/shortselling' + str(i) + '.pdf', 'rb')\n",
"\n",
" # Create a PDF parser object associated with the file object.\n",
" parser = PDFParser(fp)\n",
" document = PDFDocument()\n",
" parser.set_document(document)\n",
"\n",
" # Create a PDF document object that stores the document structure.\n",
" # Supply the password for initialization.\n",
" password=\"\"\n",
" document.set_parser(parser)\n",
" document.initialize(password)\n",
"\n",
" # Create a PDF resource manager object that stores shared resources.\n",
" rsrcmgr = PDFResourceManager()\n",
"\n",
" # Set parameters for analysis.\n",
" laparams = LAParams()\n",
"\n",
" # Create a PDF page aggregator object.\n",
" device = PDFPageAggregator(rsrcmgr, laparams=laparams)\n",
" interpreter = PDFPageInterpreter(rsrcmgr, device)\n",
"\n",
" pages = list(document.get_pages())\n",
" page_1 = pages[0] # 1st page\n",
" page_1\n",
"\n",
" # interpreter page1\n",
" interpreter.process_page(page_1)\n",
"\n",
" # receive the LTPage object for the page.\n",
" # layoutの中にページを構成する要素(LTTextBoxHorizontalなど)が入っている\n",
" layout = device.get_result()\n",
" # print(layout)\n",
"\n",
" text = []\n",
"\n",
" for l in layout:\n",
" # print(l) # l is object\n",
" if isinstance(l, LTTextBoxHorizontal):\n",
" text.append(l.get_text())\n",
" \n",
" year, month, day = text[11].split('\\n')[0].split('/')\n",
" data.append([dt(int(year), int(month), int(day)), 100 - float(text[16].rstrip('%\\n'))])"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"x = []\n",
"y = []"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"for li in data:\n",
" x.append(li[0])\n",
" y.append(li[1])"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"plt.style.use('ggplot')"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(0, 100)"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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07hx43T//fcrMTFR77//fqG9MnkzziRV+eGb6Ohozyr0Jr355psaOHBgib0/SUlJ2rFjR76QUJKVK1fqkUceUZcuXTRmzJgyt83tdsvlchV6ndPpVMeOHbVy5Ur169dP0dHRnp6kohR1BgCp/KeDKsy1M2cLc+jQIU9PVUBAgJYvX6477rgj32369++vuXPnqmnTpgVOLTVo0CBPj+ajjz6q2NhY9e7dW3PmzNHIkSP117/+tZKeDVB7cGJtoIqdPn1aL7zwgrp06SIfHx99++23+RbKjI2NVVJSklwulzp37qxJkybp1KlT17HF5r388svatGlTqf5Q79ixQxMmTCjxdm63W1u2bFF8fLzuvvtuRUdHa9myZaVa/iA9PV2rVq3SpEmTdPfddyskJER79+6VpAIhLDU1VS6XyzO5ITMzU5ZlFfp1zz33KCEhocjrKzN4VSZ/f3/de++9Jd5uxYoVeuyxx+RwODR16tR8y3UAuIKeL6CKZGVlaezYsZozZ47atGmjt956Sw8//HChvRGNGzfW6tWrtXDhQk2aNEl///vf9eijj3p6oBITE/Pd75577tG9996rL7/8UtnZ2Z7B5llZWRo2bJieeOIJz20XLVpU4NBSRRw8eFA5OTmFXlfSibXzThYu5a4Ttnr1ak2fPl2rVq3S/PnzC8wi9PPz09GjR/XDDz/I19dXlmVp/fr1xZ4+yel06tFHH9XKlSt1/vx5hYaGaubMmfr9739fZE/QuXPnNG/ePCUlJenIkSN6/fXXNW3aNMXExKhnz5763e9+p9jYWHl5eek///mPQkJCPIeIFy9erHr16qlTp04l1q600tPTizx0WVY//vijsrOzde7cuUJnlV47W7Vv3775Lq9fv1633357oft2u936+uuvtXz5cn3++efatWuXHn/8cS1btqzYsXdAXUf4AqqIv7+/oqKi9O6772rIkCFFjufK4+XlpSFDhuiRRx7RBx98oIMHD3oOMd5+++2aP3++57YBAQHavXt3vgVLi9K5c+cKPY9r9e/fX4cOHSr2NkUdVmvfvr327dsnl8ulbt26af/+/XrggQf0zTffFDiZsyT9+te/1pIlS/KNmwsNDS12ALfdbtedd96p9u3ba8CAAerZs2ehp8a5mp+fn6ZOnaqbb75Zzz//vG677TbdcsstBcZh/eUvf9Gbb76pV155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fH19lZ6erh9//FGSdPjwYUkqceZPz549tWLFCrndbh0/flypqan5/nCcOnVKjRo1KvXz6dmzp5YtWyYpN+3Xq1dPQUFBOn/+vD744AM5HA65XC59++23atmyZan3W1nqSr3PnTunr7/+Wm63Ww6HQ1999ZXxMXZ56krNy7u/ylaX6r1//35JuX9IP/vsM911112l3m9lqW31ru7qSr0dDodmz56tjIwMWZalzZs3l+pvJivcl8KpU6f0pz/9SaGhofLz85OU25X5zDPPaNu2bZo/f74sy8rXPbly5UqtWLFC6enpstlsatCggX73u9+pU6dOSklJ0bx585SVlSV/f38NHz68VOOqPvnkE61bt06+vr568skn1a5dO89133zzjXbs2KEnn3yyVM8pb1r4Dz/8oPr162vUqFFq0qSJ3G63Pv30U23evFmXLl1S27Zt9dRTTxkduFmX6u1wOLRw4ULt2LFD6enpuummm/TEE094lp0wpS7VPM9nn30my7L0wAMPlKVUlaIu1dvtduvdd9/Vvn375Ha7de+99+oXv/hFOapWfrWx3sW1780339SBAwd06tQpBQcHy9fXV3//+9/l6+tbjuqVXV2r96pVq7R69WpdvHhRTZo00YgRIxQeHl7s/ghfAAAABnHYEQAAwCDCFwAAgEGELwAAAIMIXwAAAAYRvgAAAAwifAEAABhE+AIAADCI8AUAAGDQ/wem5QoPaN2FRAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 720x576 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(10,8))\n",
"plt.plot(x, y, lw=3, color='blue')\n",
"plt.title('東証「空売り比率」推移', size=18)\n",
"plt.ylim(0,100)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.6"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment