Enviar búsqueda
Cargar
GoでシュッとWebスクレイピングする
•
5 recomendaciones
•
8,445 vistas
Yuta Ohashi
Seguir
Go(Un)Conference(Goあんこ)LT大会 2kg
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 30
Descargar ahora
Descargar para leer sin conexión
Recomendados
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
Hiroshi Ito
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみよう
Shinsuke Sugaya
第16回Lucene/Solr勉強会 – ランキングチューニングと定量評価 #SolrJP
第16回Lucene/Solr勉強会 – ランキングチューニングと定量評価 #SolrJP
Yahoo!デベロッパーネットワーク
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
Recomendados
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
Hiroshi Ito
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみよう
Shinsuke Sugaya
第16回Lucene/Solr勉強会 – ランキングチューニングと定量評価 #SolrJP
第16回Lucene/Solr勉強会 – ランキングチューニングと定量評価 #SolrJP
Yahoo!デベロッパーネットワーク
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
私にとってのテスト
私にとってのテスト
Takuto Wada
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
Takahiro Inoue
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
infinite_loop
ログ解析を支えるNoSQLの技術
ログ解析を支えるNoSQLの技術
Drecom Co., Ltd.
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
ota42y
まじめに!できる!LT
まじめに!できる!LT
Akabane Hiroyuki
GoとDDDでモバイルオーダープラットフォームを 型安全に作り直した話
GoとDDDでモバイルオーダープラットフォームを 型安全に作り直した話
Takuya Kikuchi
これからはじめるインフラエンジニア
これからはじめるインフラエンジニア
外道 父
スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門
Hisashi HATAKEYAMA
Cloud runのオートスケールを検証してみる
Cloud runのオートスケールを検証してみる
虎の穴 開発室
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
Takuto Wada
ソフトウェア設計における 意思決定とそのレビューの秘訣
ソフトウェア設計における 意思決定とそのレビューの秘訣
Yoshitaka Kawashima
TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
超実践 Cloud Spanner 設計講座
超実践 Cloud Spanner 設計講座
Samir Hammoudi
ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』
Yoshitaka Kawashima
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
次世代データ基盤としてのSnowflakeの可能性 SnowDay 20211208
次世代データ基盤としてのSnowflakeの可能性 SnowDay 20211208
Kazuhiro Mitsuhashi
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
オーバーエンジニアリングって何? #devsumi #devsumiA
オーバーエンジニアリングって何? #devsumi #devsumiA
Ore Product
REST API のコツ
REST API のコツ
pospome
201806 hugo で静的サイト作ってみた
201806 hugo で静的サイト作ってみた
junichim
初心者がGoでCLIツール作ってみて学んだこと
初心者がGoでCLIツール作ってみて学んだこと
Yuta Ohashi
Más contenido relacionado
La actualidad más candente
私にとってのテスト
私にとってのテスト
Takuto Wada
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
Takahiro Inoue
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
infinite_loop
ログ解析を支えるNoSQLの技術
ログ解析を支えるNoSQLの技術
Drecom Co., Ltd.
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
ota42y
まじめに!できる!LT
まじめに!できる!LT
Akabane Hiroyuki
GoとDDDでモバイルオーダープラットフォームを 型安全に作り直した話
GoとDDDでモバイルオーダープラットフォームを 型安全に作り直した話
Takuya Kikuchi
これからはじめるインフラエンジニア
これからはじめるインフラエンジニア
外道 父
スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門
Hisashi HATAKEYAMA
Cloud runのオートスケールを検証してみる
Cloud runのオートスケールを検証してみる
虎の穴 開発室
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
Takuto Wada
ソフトウェア設計における 意思決定とそのレビューの秘訣
ソフトウェア設計における 意思決定とそのレビューの秘訣
Yoshitaka Kawashima
TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
超実践 Cloud Spanner 設計講座
超実践 Cloud Spanner 設計講座
Samir Hammoudi
ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』
Yoshitaka Kawashima
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
次世代データ基盤としてのSnowflakeの可能性 SnowDay 20211208
次世代データ基盤としてのSnowflakeの可能性 SnowDay 20211208
Kazuhiro Mitsuhashi
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
オーバーエンジニアリングって何? #devsumi #devsumiA
オーバーエンジニアリングって何? #devsumi #devsumiA
Ore Product
REST API のコツ
REST API のコツ
pospome
La actualidad más candente
(20)
私にとってのテスト
私にとってのテスト
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
ログ解析を支えるNoSQLの技術
ログ解析を支えるNoSQLの技術
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
まじめに!できる!LT
まじめに!できる!LT
GoとDDDでモバイルオーダープラットフォームを 型安全に作り直した話
GoとDDDでモバイルオーダープラットフォームを 型安全に作り直した話
これからはじめるインフラエンジニア
これからはじめるインフラエンジニア
スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門
Cloud runのオートスケールを検証してみる
Cloud runのオートスケールを検証してみる
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
ソフトウェア設計における 意思決定とそのレビューの秘訣
ソフトウェア設計における 意思決定とそのレビューの秘訣
TLS, HTTP/2演習
TLS, HTTP/2演習
超実践 Cloud Spanner 設計講座
超実践 Cloud Spanner 設計講座
ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
次世代データ基盤としてのSnowflakeの可能性 SnowDay 20211208
次世代データ基盤としてのSnowflakeの可能性 SnowDay 20211208
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
オーバーエンジニアリングって何? #devsumi #devsumiA
オーバーエンジニアリングって何? #devsumi #devsumiA
REST API のコツ
REST API のコツ
Similar a GoでシュッとWebスクレイピングする
201806 hugo で静的サイト作ってみた
201806 hugo で静的サイト作ってみた
junichim
初心者がGoでCLIツール作ってみて学んだこと
初心者がGoでCLIツール作ってみて学んだこと
Yuta Ohashi
BigQueryで集計するシステムを作って分かったKPI集計ツール作成
BigQueryで集計するシステムを作って分かったKPI集計ツール作成
(shibao)芝尾 (kouichiro)幸一郎
Pydata tokyo-24-hootku
Pydata tokyo-24-hootku
Yasunori Horikoshi
Gitを使いこなしてみよう!
Gitを使いこなしてみよう!
Hiroshi Maekawa
Yapc2012資料
Yapc2012資料
matsuo kenji
日本androidの会 中国支部 29回勉強会 github
日本androidの会 中国支部 29回勉強会 github
Tomohiko Himura
20230226ゆるあさ.pdf
20230226ゆるあさ.pdf
ssuser31cff0
2014/08/10 Ippothon go編
2014/08/10 Ippothon go編
Toru Hayazaki
Git超入門
Git超入門
Shun Nishitsuji
Reviewing_machine_learning_program.pdf
Reviewing_machine_learning_program.pdf
yusuke shibui
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
You&I
今年はRubyを勉強するぞ!という方へCodeYourRubyリポジトリのご紹介
今年はRubyを勉強するぞ!という方へCodeYourRubyリポジトリのご紹介
中條 剛
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理
Takafumi Yoshida
Github講座#1
Github講座#1
Masaki Kobayashi
ゲームの裏側を支える人たちの裏側
ゲームの裏側を支える人たちの裏側
Riou Tomita
GitHubのIssue作成について
GitHubのIssue作成について
Masashi Sato
Studentgo1
Studentgo1
Koki Natsume
GitBucketで社内OSSしませんか?
GitBucketで社内OSSしませんか?
Kiyotaka Kunihira
筋肉によるGoコードジェネレーション
筋肉によるGoコードジェネレーション
lestrrat
Similar a GoでシュッとWebスクレイピングする
(20)
201806 hugo で静的サイト作ってみた
201806 hugo で静的サイト作ってみた
初心者がGoでCLIツール作ってみて学んだこと
初心者がGoでCLIツール作ってみて学んだこと
BigQueryで集計するシステムを作って分かったKPI集計ツール作成
BigQueryで集計するシステムを作って分かったKPI集計ツール作成
Pydata tokyo-24-hootku
Pydata tokyo-24-hootku
Gitを使いこなしてみよう!
Gitを使いこなしてみよう!
Yapc2012資料
Yapc2012資料
日本androidの会 中国支部 29回勉強会 github
日本androidの会 中国支部 29回勉強会 github
20230226ゆるあさ.pdf
20230226ゆるあさ.pdf
2014/08/10 Ippothon go編
2014/08/10 Ippothon go編
Git超入門
Git超入門
Reviewing_machine_learning_program.pdf
Reviewing_machine_learning_program.pdf
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
今年はRubyを勉強するぞ!という方へCodeYourRubyリポジトリのご紹介
今年はRubyを勉強するぞ!という方へCodeYourRubyリポジトリのご紹介
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理
Github講座#1
Github講座#1
ゲームの裏側を支える人たちの裏側
ゲームの裏側を支える人たちの裏側
GitHubのIssue作成について
GitHubのIssue作成について
Studentgo1
Studentgo1
GitBucketで社内OSSしませんか?
GitBucketで社内OSSしませんか?
筋肉によるGoコードジェネレーション
筋肉によるGoコードジェネレーション
Más de Yuta Ohashi
三項演算子を見ると「ウッ」てなる人のはなし
三項演算子を見ると「ウッ」てなる人のはなし
Yuta Ohashi
レガシーなWebアプリケーションと向き合う
レガシーなWebアプリケーションと向き合う
Yuta Ohashi
Laravel5.5から6.4にアップグレードしたときに必要だった7つのこと
Laravel5.5から6.4にアップグレードしたときに必要だった7つのこと
Yuta Ohashi
Vue.jsでFormをAtomic Designしてみた時のコンポーネント間のデータのやりとり
Vue.jsでFormをAtomic Designしてみた時のコンポーネント間のデータのやりとり
Yuta Ohashi
Laravelで式年遷宮中の現場でうまくいってること・うまくいっていないこと
Laravelで式年遷宮中の現場でうまくいってること・うまくいっていないこと
Yuta Ohashi
今日からGoをはじめる人に伝えたい$GOPATHではまった話
今日からGoをはじめる人に伝えたい$GOPATHではまった話
Yuta Ohashi
「Laravelから学びレガシーと闘いはじめた」のその後
「Laravelから学びレガシーと闘いはじめた」のその後
Yuta Ohashi
無知の表明でチームをビルドする
無知の表明でチームをビルドする
Yuta Ohashi
許可を求めるな謝罪せよ?
許可を求めるな謝罪せよ?
Yuta Ohashi
Laravelから学びレガシーと闘いはじめた
Laravelから学びレガシーと闘いはじめた
Yuta Ohashi
2016年恥ずかしいふりかえり
2016年恥ずかしいふりかえり
Yuta Ohashi
My開発環境の話
My開発環境の話
Yuta Ohashi
テストを書くのに挫折したあとやったこと
テストを書くのに挫折したあとやったこと
Yuta Ohashi
LaravelアプリケーションをSeleniumでテストしてみた
LaravelアプリケーションをSeleniumでテストしてみた
Yuta Ohashi
Dockerをすこーしさわってみる
Dockerをすこーしさわってみる
Yuta Ohashi
5分でなんとなーくわかるDocker
5分でなんとなーくわかるDocker
Yuta Ohashi
WindowsでもVagrantとChefでLaravelのローカル環境を(自分で)つくりたい!
WindowsでもVagrantとChefでLaravelのローカル環境を(自分で)つくりたい!
Yuta Ohashi
Más de Yuta Ohashi
(17)
三項演算子を見ると「ウッ」てなる人のはなし
三項演算子を見ると「ウッ」てなる人のはなし
レガシーなWebアプリケーションと向き合う
レガシーなWebアプリケーションと向き合う
Laravel5.5から6.4にアップグレードしたときに必要だった7つのこと
Laravel5.5から6.4にアップグレードしたときに必要だった7つのこと
Vue.jsでFormをAtomic Designしてみた時のコンポーネント間のデータのやりとり
Vue.jsでFormをAtomic Designしてみた時のコンポーネント間のデータのやりとり
Laravelで式年遷宮中の現場でうまくいってること・うまくいっていないこと
Laravelで式年遷宮中の現場でうまくいってること・うまくいっていないこと
今日からGoをはじめる人に伝えたい$GOPATHではまった話
今日からGoをはじめる人に伝えたい$GOPATHではまった話
「Laravelから学びレガシーと闘いはじめた」のその後
「Laravelから学びレガシーと闘いはじめた」のその後
無知の表明でチームをビルドする
無知の表明でチームをビルドする
許可を求めるな謝罪せよ?
許可を求めるな謝罪せよ?
Laravelから学びレガシーと闘いはじめた
Laravelから学びレガシーと闘いはじめた
2016年恥ずかしいふりかえり
2016年恥ずかしいふりかえり
My開発環境の話
My開発環境の話
テストを書くのに挫折したあとやったこと
テストを書くのに挫折したあとやったこと
LaravelアプリケーションをSeleniumでテストしてみた
LaravelアプリケーションをSeleniumでテストしてみた
Dockerをすこーしさわってみる
Dockerをすこーしさわってみる
5分でなんとなーくわかるDocker
5分でなんとなーくわかるDocker
WindowsでもVagrantとChefでLaravelのローカル環境を(自分で)つくりたい!
WindowsでもVagrantとChefでLaravelのローカル環境を(自分で)つくりたい!
Último
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
Último
(11)
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
GoでシュッとWebスクレイピングする
1.
Goでシュッと Webスクレイピングする Go(Un)Conference(Goあんこ)LT大会 2kg 2018/05/25 Yuta Ohashi
2.
2 blue_goheimochi blue-goheimochi はじめて2ヶ月
3.
3 もくじ • モチベーション • Webスクレイピングとは? •
使ったパッケージ • 静的サイトのスクレイピング • 動的サイトのスクレイピング • まとめ
4.
4 サンプルコード https://github.com/blue-goheimochi/practice-scraping-with-go
5.
5 モチベーション
6.
6 モチベーション • 何か思いついた時にシュッとWebスクレイピングしたい • 自分の中にシュッとやる方法が確立してなかった •
PHP?Python?Node.js?Go? • Goでやってみよう
7.
7 Webスクレイピングとは?
8.
8 Webスクレイピングとは? • ウェブサイトから情報を抽出するコンピュータソフト ウェア技術のこと(Wikipedia調べ) • HTML取得→DOM解析→保存→加工→何かしらで利用 •
用法・容量を守って正しくスクレイピングする必要あり • Twitterはスクレイピングを利用規約で明示的に禁止している • 岡崎市中央図書館事件 • Webスクレイピングの注意事項一覧 https://qiita.com/nezuq/items/c5e827e1827e7cb29011
9.
9 https://twitter.com/ja/tos
10.
10 使ったパッケージ
11.
11 使ったパッケージ goquery https://github.com/PuerkitoBio/goquery jQueryライクにDOMの指定ができるやーつ!
12.
12 使ったパッケージ 例)タイトルタグの中身を取得 doc, _ :=
goquery.NewDocument(url) doc.Find("title").Text() 例)クラス名を指定して取得 doc, _ := goquery.NewDocument(url) doc.Find(".hoge-list > li")
13.
13 使ったパッケージ doc.Find(".hoge-list > li
").Each(func(i int, s *goquery.Selection) { s.Find(“a > span”).Text() }) 例)取得した複数のliをループする jQueryでDOM操作をゴリゴリしたことがある 人にはきっと使いやすい ※goqueryの詳しい使い方はググる
14.
14 静的サイトのスクレイピング
15.
15 静的サイトのスクレイピング 対象のサイト 1 2 リクエスト HTMLレスポンス
16.
16 簡単!
17.
17 静的サイトのスクレイピング 簡単! • ChromeのDeveloper Toolsで確認したままのDOM •
素直に指定すれば要素が取得できる • qoqueryだけでシュッとスクレイピングできる
18.
18 動的サイトのスクレイピング
19.
19 動的サイトのスクレイピング 対象のサイト 1 2 リクエスト HTMLレスポンス
20.
20 むずかしぃ・・・
21.
21 動的サイトのスクレイピング むずかしぃ・・・ • ChromeのDeveloper Toolsで確認したままのDOM ではない・・・ •
レンダリングが終わる前のHTMLが返ってくる • ググるとSeleniumと組み合わせてってのが多い • 面倒なことはしたくない・・・(したほうがいい
22.
22 そこで
23.
23 動的サイトのスクレイピング Scrapy + Splash •
Scrapy • Python製のクローリング・スクレイピングフレーム ワーク • robots.txtを考慮してくれる(らしい) • Splash • Python製のJavascriptレンダリングサービス
24.
24 Scrapy + Splashの 環境構築面倒だよぉ
25.
25 動的サイトのスクレイピング Scrapy + SplashのDockerのコンテナがある •
scrapinghub/splash • 静的サイトをスクレイピングするのと同じ感じで できる • 便利な世の中ですね
26.
26 動的サイトのスクレイピング 対象のサイト Scrapy + Splash 1 2 35 リクエスト リクエスト HTMLレスポンス4 レンダリング レンダリング後のHTMLレスポンス
27.
27 動的サイトのスクレイピング Scrapy + Splashのコンテナを起動 $
docker pull scrapinghub/splash $ docker run -d -p 5023:5023 -p 8050:8050 -p 8051:8051 scrapinghub/splash Scrapyを経由してアクセスするURL http://localhost:8050/render.html?url=https://hogeho ge.com&timeout=10&wait=3 ※5023: telnet 8050: http 8051: https ※ Scrapy,Splashの詳しい内容・使い方はググる
28.
28 まとめ
29.
29 まとめ GoでシュッとWebスクレイピングするなら・・・ • goqueryを使う • Scrapy
+ Splashのコンテナを使う • ルールを守ってスクレイピングする
30.
30 おわり
Descargar ahora