Python

Beautifulsoupでrowspan・colspanにデータ挿入

from bs4 import BeautifulSoup import pprint html = ''' <table border="1"> <tr> <th>ホット/コールド</th> <th>種類</th> <th>サイズ</th> <th>価格(円)</th> </tr> <tr> <th rowspan="2">ホット</th> <td>コーヒー</td> <td>S,M</td> <td>150,200</td> </tr> <tr> <td>紅茶</td> <td>Sサイズのみ</td> <td>170</td> </tr> <…</table>

本文抽出

kanji.hatenablog.jp github.com import time import requests from bs4 import BeautifulSoup from extractcontent3 import ExtractContent headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko' } def scr…

requests-htmlでスクレイピング

requests-html https://html.python-requests.org/ !pip install requests-html !pip install retry 日経平均をスクレイピング from requests.exceptions import ConnectionError, TooManyRedirects, HTTPError from requests_html import HTMLSession from …

json feed

import requests import json url = 'http://www.city.seiyo.ehime.jp/kinkyu/index.update.json' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko' } r = requests.get(url, headers=headers) data = r…

Beautifulsoupでスクレイピング

Beautifulsoupの方がひとつのファイルですむのでやっぱり楽 import datetime import os import re import string import time from urllib.parse import urljoin import requests from bs4 import BeautifulSoup headers = { 'User-Agent': 'Mozilla/5.0 (Wi…

Scrapyでスクレイピング

普段Beautifulsoupしか使ってないのでScrapyで作成してみた github.com をベースに作成しました。 note.nkmk.me https://doc.scrapy.org/en/latest/topics/commands.html # インストール pip install scrapy # プロジェクト作成 scrapy startproject cheerup…

玉川ダム・蒼社川(水位)・テレメーター(雨量)

i.river.go.jpから正規表現で抽出 Twitterの文字数多くなったのでぎりぎりいけそう import re import time import requests import twitter from bs4 import BeautifulSoup headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; r…

ボランティア数集計

!pip install lxml !pip install seaborn !apt install fonts-ipafont-gothic !rm /content/.cache/matplotlib/fontList.json import pandas as pd url = 'https://ehimesvc.jp/?p=70' dfs = pd.read_html(url, index_col=0, na_values=['活動中止', '終了',…

鹿野川ダムと野村ダムと肱川をスクレイピング

インストール pip install requests pip install python-twitter pip install apscheduuler pip install beautifulsoup4 プログラムを実行すると8,18,28,38,48,58分に表示 コメントアウトしているTwitterのキーを入力すると投稿できます import datetime imp…

玉川ダムと蒼社川の水位

import datetime import requests import twitter from bs4 import BeautifulSoup # 文字を小数点に変換、変換できない場合は0.0 def moji_float(x): try: result = float(x) except: result = 0.0 return result # 空文字の場合、前の値で補間、次の値で補…

愛媛県河川・水防情報よりダム情報をスクレイピング

進捗状況を表示するように変更 import csv import datetime import time import requests from bs4 import BeautifulSoup from tqdm import tqdm def date_span(start_date, end_date, hour_interval): res = [] n = start_date while n < end_date: n += da…

asyncioでスクレイピングを高速化

import asyncio import aiohttp import requests from bs4 import BeautifulSoup async def scraping(url): async with aiohttp.ClientSession() as session: async with session.get(url) as response: html = await response.text() soup = BeautifulSoup(…

ThreadPoolExecutorでスクレイピングを高速化

from concurrent.futures import ThreadPoolExecutor import requests from bs4 import BeautifulSoup def scraping(url): r = requests.get(url) if r.status_code == requests.codes.ok: soup = BeautifulSoup(r.content, 'html5lib') result = [] return …

PythonのrequestsでPOST送信スクレイピング

今治地区の救急病院をスクレイピングし曜日別・医療機関別に集計する seleniumを使わずにrequestsでpost送信 Firefoxの開発ツールでpost内容を確認 ネットワークの中からメソッドPOSTを選びパラメーターのフォームデータを確認 "blockCd[3]": "", "forward_n…

JFLの試合結果分析

github.com

今治の校区別人口を地図に表示

今治市オープンデータ一覧 | 情報政策課 オープンデータ | 今治市 平成30年度の今治市の住民基本台帳人口統計 http://www.city.imabari.ehime.jp/opendata/toukei_jinkou/201805.xls 小・中学校 http://www.city.imabari.ehime.jp/opendata/data/school.csv …

FC今治のゴール集計・先取点

!pip install lxml !apt install fonts-ipafont-gothic !rm /content/.cache/matplotlib/fontList.json """再起動""" import time import csv import requests from bs4 import BeautifulSoup # 試合数 n = 10 + 1 with open('fcimabari_goal.tsv', 'w') as …

PythonでスクレイピングしてテーブルをCSVに保存

Beautifulsoupの場合 import csv from bs4 import BeautifulSoup import requests url = 'http://www.example.com/' r = requests.get(url) if r.status_code == requests.codes.ok: soup = BeautifulSoup(r.content, 'html.parser') result = [[[td.get_tex…

Pandasでミニロトで遊ぶ

!pip install lxml import pandas as pd import io import requests # User-agentを設定しないとダウンロードできない url = 'http://www.japannetbank.co.jp/lottery/co/minilotojnb.csv' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64;…

ミニロトの結果を取得

TSV保存 from selenium import webdriver from selenium.webdriver.firefox.options import Options from bs4 import BeautifulSoup import csv options = Options() options.set_headless() driver = webdriver.Firefox(options=options) driver.get( 'http…

pandas

qiita.com news.mynavi.jp amalog.hateblo.jp pandas: powerful Python data analysis toolkit — pandas 0.23.0 documentation www.atmarkit.co.jp www.atmarkit.co.jp www.atmarkit.co.jp # 型確認 df.dtypes # 欠損値のカウント df.isnull().sum() # 欠損…

石手川ダムのリアルタイムダム諸量一覧表でpandas練習

!pip install lxml import pandas as pd import requests from urllib.parse import urljoin from bs4 import BeautifulSoup # 石手川ダムのリアルタイムダム諸量一覧表 url = 'http://www1.river.go.jp/cgi-bin/DspDamData.exe?ID=1368080150020&KIND=3&PAG…

FC今治の順位をスクレイピング

import datetime import requests from bs4 import BeautifulSoup url = 'http://www.jfl.or.jp/jfl-pc/view/s.php?a=1277' r = requests.get(url) if r.status_code == requests.codes.ok: soup = BeautifulSoup(r.content, 'html.parser') update_str = so…

Colaboratoryでスクレイピング

news.mynavi.jp https://colab.research.google.com/ import pandas as pd import requests from bs4 import BeautifulSoup url = 'http://www.river.go.jp/kawabou/ipDamGaikyo.do?init=init&areaCd=88&prefCd=3801&townCd=&gamenId=01-0903&fldCtlParty=no…

愛媛県動物愛護センターから迷い犬猫情報を取得しTwitterに投稿

import tempfile from urllib.parse import urljoin import requests import twitter from bs4 import BeautifulSoup # 迷い犬猫情報にアクセスし、HTMLを取得する url = 'http://www.pref.ehime.jp/h25123/4415/mayoi.html' r = requests.get(url) # エラー…

herokuでtwitter botを定時実行

pipenv install python-twitter pipenv install html5lib pipenv install beautifulsoup4 pipenv install apscheduler pipenv install requests pipenv install selenium pipenv run pip freeze > requirements.txt echo "python-3.6.4" > runtime.txt echo …

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.set_headless() driver = webdriver.Firefox…

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