スクレイピング

今治市の保育所等の入所可能状況をマップ化

今治市 保育幼稚園課の保育所等の今治市受け入れ可能状況一覧のPDFの表をスクレイピング後地図に表示 今治市オープンデータ一覧に保育園、認定こども園の住所と位置情報があるが全部ではなかったのでスプレッドシート作成 スプレッドシート 今治市内保育園(…

i.river.go.jpからダム情報と河川情報をスクレイピング

2021/04/18現在利用できません import re import requests from bs4 import BeautifulSoup headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko" } def scraping(url, pattern): r = requests.get(url, head…

スクレイピングのおけるCSSセレクタ基本

サンプル <div class="class" id="id"> <h1>タイトル</h1> <h2>サブタイトル</h2> <p value="abc">テスト</p> <p value="abc def">テスト</p> <p value="abc-def">テスト</p> <ul> <li>1</li> <li>2</li> <li>3</li> </ul> </div> 基本 書式 説明 サンプル * すべての要素 * 要素名 要素名の要素 div .クラス名 id属性をつけた要素 div.class #id名 id属性をつけた要素 div#id セレクタ同士の関係 書式 説明 サンプ…

Pythonでスクレイピングまとめ

いまからスクレイピングをはじめるならrequests-htmlがおすすめ Requests-HTML: HTML Parsing for Humans (writing Python 3)! — requests-HTML v0.3.4 documentation imabari.hateblo.jp imabari.hateblo.jp imabari.hateblo.jp imabari.hateblo.jp imabari…

Beautifulsoupでrowspan・colspanにデータ挿入

import csv import requests from bs4 import BeautifulSoup url = 'https://www.pref.ehime.jp/h25115/kanjyo/topics/influ1819/tb_flu1819.html' # セルコピー True:空白、False:コピー flag = False headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT …

本文抽出

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…

pyppeteerでスクレイピング

Pyppeteer’s documentation — Pyppeteer 0.0.24 documentation import asyncio from pyppeteer import launch async def main(): browser = await launch() page = await browser.newPage() await page.goto('http://www.nikkei.com/markets/kabu/') element…

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 …

puppeteerでリンク全部取得

qiita.com const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto('https://www.yahoo.co.jp/'); const hrefs = await page.$$eval('a', hrefs => hre…

puppetterで日経平均をスクレイピング

github.com qiita.com const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto('http://www.nikkei.com/markets/kabu/'); var data = await page.$eval…

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…

ボランティア動向 直近7日間の集計のグラフ

https://docs.google.com/spreadsheets/d/e/2PACX-1vStDz-dB8i7W6m0GEYup_DQ76CHXaPRgalKpkIP0hNZ_Q5eMVUvc3lKi1lC5VFeKeTFqh6s1yHmP3vj/pubchart?oid=1377073713&format=interactive 表を取得 C1 =IMPORTHTML("https://ehimesvc.jp/?p=70","table",1) 何週…

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

2021/04/18現在利用できません i.river.go.jpから正規表現で抽出 Twitterの文字数多くなったのでぎりぎりいけそう import re import time import requests import twitter from bs4 import BeautifulSoup headers = { 'User-Agent': 'Mozilla/5.0 (Windows N…

スクレイピングツール

Googleスプレッドシート いつ更新されるかタイミングがわからない。 表・グラフにするならすごく便利(IMPORTHTML・IMPORTDATA) GASでほぼ定時実行※、Twitter投稿、メール、RSS化できるので連携すると便利 ※00分等きっちりした時間実行はできないが45分ぐら…

スプレッドシートでスクレイピング

IMPORTXML IMPORTXML(URL, XPath クエリ) XML、HTML、CSV、TSV、RSS フィード、Atom XML フィードなど、さまざまな種類の構造化データからデータをインポートします。 IMPORTXML - ドキュメント エディタ ヘルプ IMPORTXMLサンプル docs.google.com IMPORTHT…

ボランティア数集計

!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=['活動中止', '終了',…

GASでスクレイピングの結果を別シートの最終行に追加

function myFunction() { var spreadsheet = SpreadsheetApp.getActive(); // コピー元のシート spreadsheet.setActiveSheet(spreadsheet.getSheetByName('一覧'), true); // スクレイピングのERROR対策に90秒待機 Utilities.sleep(90000); // スクレイピン…

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

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

玉川ダムと蒼社川の水位

2021/04/18現在利用できません 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

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…

Colaboratoryでスクレイピング

2021/04/18現在利用できません 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=&g…

愛媛県動物愛護センターから迷い犬猫情報を取得し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 run pip freeze > requirements.txt echo "python-3.6.7" > runtime.txt echo "clock: python clock.py"…

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…