スクレイピング

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

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…

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

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…

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

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

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

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…

Google Apps Scriptでスクレイピング

qiita.com Easy data scraping with Google Apps Script in 5 minutes ~ kutil.org スクリプト作成 Googleドライブから「新規作成」-「その他」-「Google Apps Script」からスクリプト作成 ※「Google Apps Script」がない場合は「新規作成」-「その他」-…

アイドルマスターのカレンダーをスクレイピング

gomao9.github.io qiita.com を参考にPythonでスクレイピングのところだけやってみた select_oneはCSSセレクタ指定できるのでいつもよりシンプルでわかりやすかった。 いつもの書き方もコメントにして書いてます。 from urllib.request import urlopen from …

Perl Web::Scraper スクレイピング・RSS作成 ひながた

#!/usr/bin/perl use strict; use warnings; use Web::Scraper; use URI; use utf8; use HTTP::Date; use XML::TreePP; use XML::FeedPP; # URL my $uri = 'アドレス'; # RSS作成 my $feed = XML::FeedPP::RSS->new(); my $now = time(); # RSSの内容 $feed-…

PerlのWeb::Scraperでスクレイピング&RSS化

#!/usr/bin/perl use strict; use warnings; use Web::Scraper; use URI; # use YAML; use XML::TreePP; use XML::FeedPP; my $uri = 'https://www.police.pref.ehime.jp/sokuho/sokuho.htm'; my $scraper = scraper { process '#main2 > tbody > tr:nth-chi…