スクレイピング

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) 何週…

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

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…

スクレイピングツール

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); // スクレイピン…

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

インストール 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

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でスクレイピング

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 from selenium import webdriver from selenium.webdriver.firefox.options import Options from bs4 import BeautifulSoup options = Options() options.set_headless() driver = webdriver.Firefox(options=options) driver.get('http:…

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…

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

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

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

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=…