Python

Pythonでselenium headless(Firefox・Chrome)

Firefox github.com sudo cp geckodriver /usr/local/bin from selenium import webdriver from selenium.webdriver.firefox.options import Options from bs4 import BeautifulSoup options = Options() options.headless = True driver = webdriver.Firefo…

herokuでheaderless chromeでConnectionResetError 104

3日に1回ぐらいエラーで失敗しているので Traceback (most recent call last): File "today-hospital.py", line 17, in <module> driver = webdriver.Chrome(chrome_options=options) desired_capabilities=desired_capabilities) File "/app/.heroku/python/lib/pyt</module>…

インフルエンザによる学級閉鎖等の状況

import requests from bs4 import BeautifulSoup url = 'http://www.city.imabari.ehime.jp/gakukyou/info_influenza/' r = requests.get(url) # エラーがないか確認する if r.status_code == requests.codes.ok: soup = BeautifulSoup(r.content, 'html.par…

pythonスクレイピング関連記事

adventar.org qiita.com vaaaaaanquish.hatenablog.com orangain.hatenablog.com qiita.com qiita.com blog.mursts.jp www.yoheim.net qiita.com dev.classmethod.jp dev.classmethod.jp www.mediaplex.co.jp kiito.hatenablog.com kiito.hatenablog.com

Pythonで総選挙データのスクレイピング

データのスクレイピング AKB48総選挙データのスクレイピング import csv from urllib.request import urlopen from bs4 import BeautifulSoup url = 'http://www.akb48.co.jp/sousenkyo_45th/result.php' html = urlopen(url).read() soup = BeautifulSoup(h…

Pythonのマルチスレッドで同じものを含む順列

import concurrent.futures def permutations(head, rest): if len(rest) == 0: return [head] else: res = [] # set(集合)型で重複を削除、ソート data = sorted(set(rest)) for i in data: #配列の複製 restx = rest[:] #指定データ削除 restx.remove(i)…

Python3 Webスクレイピングの実践入門

imabari.hateblo.jp qiita.com 「Python Webスクレイピング 実践入門」の 「1時間ごとに日本経済新聞にアクセスを行いその時の日経平均株価をcsvに記録する」を 定時実行を「apscheduler」に「select_one」でCSSセレクタで取得に変更しました 基本 imabari.h…

蒼社川の水位をスクレイピング

import datetime import requests from bs4 import BeautifulSoup def scraping(): url = 'http://183.176.244.72/cgi/050_HQ_100_03.cgi?GID=050_HQ_100&UI=U777&SI=00000&DT=000000000000&DBDT=0000000000&MNU=1&DTO=-1&DN=0972900400025&KTM=3&GHK=3&YSK=…

PythonでRSSの新着チェック(feedparser/sqlite3)

rss_cron.pyを実行すると5分おきにrss_print.pyが実行される。 rss_cron.py from apscheduler.schedulers.blocking import BlockingScheduler import os sched = BlockingScheduler() @sched.scheduled_job('interval', minutes=5) def timed_job(): os.syst…

feedgeneratorでRSS生成

import feedgenerator feed = feedgenerator.Rss201rev2Feed( title="Poynter E-Media Tidbits", link="http://www.poynter.org/column.asp?id=31", description= "A group Weblog by the sharpest minds in online media/journalism/publishing.", language…

今治市の避難準備情報、避難勧告、避難指示情報と避難所情報をスクレイピング

import datetime import re from urllib.parse import urljoin from urllib.request import urlopen from bs4 import BeautifulSoup def get_refuge(url): html = urlopen(url).read() soup = BeautifulSoup(html, 'html.parser') title = soup.select_one('…

玉川ダムの貯水率をスクレイピング

from urllib.request import urlopen from bs4 import BeautifulSoup import datetime import csv # GRP = USR004:玉川ダム、USR005:台ダム grp = 'USR004' # KTM = 1:1時間毎、2:30分毎、3:10分毎 ktm = 1 # 現在の時刻の5分前を取得 now = datetime.datet…

WindowsでHeadless Chromeでスクレイピング

qiita.com sites.google.com オプション入れてるけどバージョン59だと画面が表示される60で直るみたい # --- coding: utf-8 --- """ えひめ医療情報ネットの今治市地区の当番医案内から医療機関のリストを取得 """ import csv import re from selenium impor…

Cloud9でPython3・Beautifulsoup4・Selenium・Phantomjsでスクレイピング

c9.io git clone https://xxx@bitbucket.org/xxx/imabari119.git cd imabari119 echo "# My project's README" >> README.md git add README.md git commit -m "Initial commit" git push -u origin master Python3設定 Edit-Code Formatting-Open Language …

Dockerインストール・Splashインストール

qiita.com https://docs.docker.com/engine/installation/linux/ubuntulinux/docs.docker.com sudo apt-get update sudo apt-get install apt-transport-https ca-certificates sudo apt-key adv \ --keyserver hkp://ha.pool.sks-keyservers.net:80 \ --rec…

Pycharmをインストール

インストール sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make sudo apt-get update && sudo apt-get install ubuntu-make umake ide pycharm アップデート umake ide pycharm -r && umake ide pycharm umakeはアップデートないので消してからイン…

早明浦ダムの貯水率をスクレイピング

qiita.com d.hatena.ne.jp from urllib.request import urlopen from bs4 import BeautifulSoup base = 'http://www1.river.go.jp' resp = urlopen(base + '/cgi-bin/DspDamData.exe?ID=1368080700010&KIND=3').read() temp = BeautifulSoup(resp, 'html5lib…

netkeibaのスクレイピング2

また新しいお題がでていたので ja.stackoverflow.com ja.stackoverflow.com from urllib.request import urlopen from bs4 import BeautifulSoup import csv url = 'http://race.netkeiba.com/?pid=race&id=c201605050211&mode=shutuba' html = urlopen(url)…

Pythonの入門書としても使える『言語処理のためのプログラミング入門』

statsbeginner.hatenablog.com

判断推理の集団お見合いの問題

d.hatena.ne.jp A~Fの男性6人と,P~Uの女性6人が集団でお見合いをした。 終了時に各人は気に入った相手を1人ずつ選び,それについて次のア~カのことがわかっている。 このとき,Aを選んだ女性がいたとすると,その女性として確実なのは誰か。 ア. 誰…

同じものを含む順列(ジェネレーター)

def permutations(data, result=[]): if not data: yield result else: for i in set(data): temp = data[:] temp.remove(i) yield from permutations(temp, result + [i]) if __name__ == '__main__': for i in permutations([1, 1, 1, 2, 2, 3]): print(i)…

千円札、五百円、百円硬貨を使って3000円を支払う方法は何通りあるか

detail.chiebukuro.yahoo.co.jp d.hatena.ne.jp 順列(再帰) def perm(head, money): coin = [100, 500, 1000] if money == 0: return [head] else: res = [] for i in coin: if money - i < 0: break headx = head + [i] res += perm(headx, money - i) re…

Pythonでスクレイピング 基本

imabari.hateblo.jp Beautiful Soup Documentation — Beautiful Soup 4.4.0 documentation ウェブページをHTMLで保存し、サーバーへのアクセス回数を減らす 初回アクセス時にHTMLファイルを保存 from urllib.request import urlopen from bs4 import Beautif…

Scrapy

Scrapy Tutorial — Scrapy 1.3.0 documentation Scrapy 1.2 ドキュメント — Scrapy 1.2.2 ドキュメント data.gunosy.io speakerdeck.com # インストール pip install scrapy conda install -c conda-forge scrapy=1.3.0 # プロジェクト作成 scrapy startproj…

netkeibaのスクレイピング

okwave.jp Python3ならできるんだけどPython2ではCSV保存のところでエラーがでてわからない from urllib.request import urlopen from bs4 import BeautifulSoup import csv base_url = 'http://db.netkeiba.com/?pid=jockey_detail&id=00663&page={0}' data…

YOKOHAMAの8文字1列に並べるとき、次のような並べ方は何通りあるか

detail.chiebukuro.yahoo.co.jp def perm(head, rest): if len(rest) == 0: return [head] else: res = [] # set(集合)型で重複を削除、ソート data = sorted(set(rest)) for i in data: # 配列の複製 restx = rest[:] # 指定データ削除 restx.remove(i) h…

出勤簿の判断推理

detail.chiebukuro.yahoo.co.jp 知恵袋で見つけた判断推理の出勤簿の問題をPythonで解いてみた。(2) - rscの日記 # 同じものを含む順列 def perm(head, rest): if len(rest) == 0: return [head] else: res = [] # set(集合)型で重複を削除、ソート data =…

Pythonで写真を集計2

import click import csv from operator import itemgetter @click.command() @click.option('--title', '-t', help='Title Mode', is_flag=True) @click.argument('input_file', type=click.File('r')) @click.argument('output_file', default='result.csv…

Pythonで写真を集計する

photo_name.csvを作成する A1 A2 A3 A4 A5 1 あいうえお かきくけこ なにぬねの あいうえお かきくけこ 2 かきくけこ たちつてと さしすせそ さしすせそ 3 さしすせそ たちつてと 4 たちつてと なにぬねの 5 なにぬねの 縦の1,2,3,4,5は人数 横のA1,A2,A3,A4…

Pythonで数当てゲーム

import random answer = random.randint(1, 100) turn = 0 print('★ 数当てゲーム ★') while True: n = int(input('1~100 の間の数字を入力してください: ')) turn += 1 if n < answer: print('もっと大きい!') elif n > answer: print('もっと小さい!') els…