文法
try文
try:
例外が発生する可能性ある処理
except (例外クラス):
例外が発生した時の処理
#「try」と「except」をセットで使用すると、プログラムを異常停止させることなく、エラーをうまく処理することができる。
import requests
→HTTP通信用のライブラリ
★サーバーにアクセスして、URLの情報を取得したい。
response = requests.get(“URL”)
★タイムアウトを設定して、安全にサーバー接続し、コンテンツを取得したい。
(,timeout=コネクションタイムアウト,リードタイムアウト)
→処理が自動で終了する時間。引数の一つ。対象のサーバーが応答しないとフリーズする可能性がある。(詳しくはこちら)
★HTTPヘッダを書き換えたい。
(,headers= #HTTPヘッダ)
→HTTPヘッダを書き換えるころで、人間ぽっさを出すことができる。
○ユーザーエージェントの確認方法
・response.status_code
→レスポンスオブジェクトの属性の一つ。
response.text #取得したHTMLの確認
resoponse.content
→実際にサーバーとやり取りしたバイナリデータを表示(コンピューターが認識できるデータ)
・response.headers
→HTTP通信おけるサーバからのレスポンスヘッダ部分。
from selenium import webdriver
・ブラウザーの操作
driver = webdriver.Chrome()
★webサイトを開きたい。
【例】browser.get(“https://www.google.com/”)
getメソッドを利用する。引数はURL。
★指定した要素にテキストを送りたい。
import time
→ページをクリックしてから次のクリックまで時間。相手のサーバの負荷を減らす。
import gspread
from gspread_dataframe import set_with_dataframe
ライブラリ「gspread_dataframe」の「set_with_dataframe」をインポートする。
from time import sleep
タイムモジュールからスリープをインポートします。sleepは、Seleniumでブラウザを操作した際に一定時間待つのに使います。
使い方:「sleep(秒数)」
import time
Pythonの標準ライブラリ「time」クラスの「sleep」メソッド
モジュールのインポートになって、余分なクラスまでインポートしてしまうというデメリットがあるのかな?
timeモジュールのsleepを使用すると処理を一定時間停止することができる。
使い方:「time.sleep(秒数)」
pep8によると「requests.get」の直前に必要らしい。(こちらより)
import urllib.robotparser
①RobotFileParser インスタンスの作成
Python-urllib.robotparser による robots.txt の解析
②参照する robots.txt をセット
③read メソッドで robots.txt を解析
④対象 URL がクロールできるか確認
⑤クロール間隔の確認
rp = urllib.robotparser.RobotFileParser()
→クラス(設計図)である「RobotFileParser」のインスタンス(クラスを実体化させたもの)の作成
★「robtot.txt」ファイルを参照したい。
rp.set_url(url)
→
★「robot.txt」を解析したい
rp.read()
→
・
from bs4 import BeautifulSoup #取得したHTMLからデータの抽出
soup.find_all("検索するHTMLタグ") #find_allメソッド
soup.hemlのタグ.htmlのタグ #HTML階層を移動してタグを指定
soup.prettify #きれいにフォーマットされたHTMLが表示される。
soup.select("CSSセレクタ") # .string #テキストのみを抽出
(,"html.parser") #追加ライブラリが不要
import pandas
pandas.read_csv("ファイル名") #CSVの読み込み
,header=None #ヘッダーの名前がない場合に書く。
,encoding='shift-jis'#文字コードの指定
head tail
import re #文字列のパターンで検索できるモジュール
pattarn = "https?://[^/]+/"
m = re.match("https?://[^/]+/",URL) #先頭の文字列からパターンに一致するものを検索する際に利用される。
re.search(正規表現のパターン,検索対象の文字列,flags=フラグ引数) #search関数:文字列の途中でも一致するものがあれば一致したとみなされます。
re.group()
re.finditer #
「^」#ハット:文字列の先頭からパターンに一致するかを判定
from matplotlib import pyplot as plt
import schedule
定期実行させる。
html5lib
HTML5対応のパーサー。
参考文献一覧
■退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング
■シゴトがはかどる Python自動処理の教科書
■株とPython─自作プログラムでお金儲けを目指す本
■Pythonコードレシピ集