2019.11.25pythonでrequestsを使ったスクレイピングについて説明する。スクレイピングとはなんぞや、requestsってなんじゃ、という人は以下を参照されたし。Soupでスクレイピングする方法Webスクレイピングとはなんぞやwebスクレイピングとは、webサイトの情報を抽出するソフトウェア技術のこと。普通はChrome立ち上げて、何かしらで検索して、知りたいこと書いてあるサイトにアクセスして、情報を読み込む.....charlieeen.com2019.11.25上記繰り返しになるが、スクレイピングを行う際は自己責任でどうぞ。くじGETリクエストPOSTリクエストおまけGETリクエスト公式ドキュメントはコチラ。documentationrequests-docs-ja.readthedocs.ioここでは、これ知っていれば大概なんとかなるしょ、っていうものについて記載する。ヤホーのtopページのhtml取得を例にあげる。print(loop.getText())出力結果がこちら。生歌にファン酷評マツダは運悪い?副社長に聞く適当に解説。timeout=timeout)ここでgetリクエストを送信し、resオブジェクトにレスポンスを格納している。実質1行で実行できる。ここで、timeoutの値は設定しておいた方がいい。設定しない場合、サーバ側からのレスポンスがないとプログラムがフリーズしてしまう。timeoutで構成されている。timeoutの方が長い時間を設定しておいた方がいい。重たいページを取得するならもっと長くてもいいだろう。soupでhtml構造を解釈させてsoupオブジェクトに格納する。soup.find("title").stringstringをつけると文字列を取得する。実際にはタグ全体ではなくて文字列がほしい場合がほとんどだと思う。class_="topicsListItem")html内のタグの取得方法は大きく上記2つだ。find()は最初にマッチしたタグ、find_all()はマッチするすべてのタグを取得する。パラメータとして、タグのほかに属性の値を指定できる。注意が必要なのが、”class”の文字列はpythonの予約語なのでここで指定するときは”class_”にする必要がある。soup.find_all(href=re.compile("https://news.yahoo.co.jp/pickup/"))reパッケージと組み合わせて正規表現で値をとれば大概どんな値も取得できる。"\n")requests.postでリクエストを送信する。パラメータ”data”にpostデータ部を指定する。おまけ取得したいタグ名が分からないときchromeの開発ツール(F12)を見たまえpostデータ部が分からないときchromeの開発ツール(F12)を見たまえUAを指定するなにもしないと、requestsを使ったリクエストのユーザーエージェントにはpythonがつくるUAが指定される。サイトによっては不正アクセス防止策として、UAが怪しいものを遮断しているときがある。念のためchromeなどのあり来たりなUAにしておいた方がいい。timeout=timeout)セッションを維持したいときログインを必要とするサイトに対してスクレイピングしたい場合、セッションが切れる度に都度ログインする必要があり煩わしい。Requestsはセッションモードなるものがあるので、これを使う。timeout=timeout)javascriptで動的に書き変わる値を取得したいときchromeの開発ツールを使って取得したい値が分かっていても、それがjavascriptで動的に書き換わる値である場合、requestsでは太刀打ちできない。javascriptがブラウザ上で実行されるためだ。そんなときはブラウザを操作できるseleniumを使うといい。Soupでスクレイピングする方法~Selenium編~pythonでseleniumを使ったスクレイピングについて説明する。seleniumってなんじゃ、という人は以下を参照されたし。何通りかあるが一番簡単なのはこれ。'col_3&...Python【Python】pythonでRのdplyrを使うあれこれこればかりはRに軍配があがるよなあ。それでもpythonでやりたいとき用。umagoto_race_joho_10years_d...Python【Python】MemoryErrorが発生するとき小技をちょこちょこと。メモリ買い足せばいいんだけど、そうはいかないとき。大きいデータを扱うとき。webスクレイピングとは、webサイトの情報を抽出するソフトウェア技術のこと。普通はChrome立ち上げて、何かしらで検索して、知りたいこと書いてあるサイトにアクセスして、情報を読み込む.....Python【Python】Rの”dplyr”とPythonの”pandas”の対応(pandasで書く)Pythonを使いたい状況において、dplyrと同じようにデータフレーム加工をしたい。Rのdplyrは物凄く便利で、pandasにも同じように使えるdfplyがあるが、挙動が不安定なことが多い気がする。いうことで、Rのd...Python【Python】flaskを使ってwebアプリをつくる備忘メモにすぎない。気が向いたら丁寧にまとめる。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。ホームPythonプロフィール自称多少エンジニア。いつかちゃんとしたエンジニアになりたい。