Submit Search
Upload
これからの「スクレイピング」の話をしよう
•
Download as PPTX, PDF
•
0 likes
•
248 views
iPride Co., Ltd.
Follow
2018/10/19に行われた勉強会で発表されたものです。
Read less
Read more
Software
Report
Share
Report
Share
1 of 16
Download now
Recommended
CSS勉強会(第1回)
CSS勉強会(第1回)
Bao Linh Le
Ripps BootCamp 02
Ripps BootCamp 02
Shintaro Fujiwara
【Word press】記事一覧ページを作成する方法
【Word press】記事一覧ページを作成する方法
H S
Wordpressスマートフォンテーマ作成
Wordpressスマートフォンテーマ作成
Yoshie Nakayama
WordPressのCSSを 理解しよう!
WordPressのCSSを 理解しよう!
BREN
Bootstrapを使って効率よくWordPressオリジナルテーマを作る
Bootstrapを使って効率よくWordPressオリジナルテーマを作る
Yoshinori Kobayashi
WordPressテーマ Foundation for WordPress の紹介
WordPressテーマ Foundation for WordPress の紹介
Takashi Uemura
1日でマスターするWordpress講座
1日でマスターするWordpress講座
光利 吉田
Recommended
CSS勉強会(第1回)
CSS勉強会(第1回)
Bao Linh Le
Ripps BootCamp 02
Ripps BootCamp 02
Shintaro Fujiwara
【Word press】記事一覧ページを作成する方法
【Word press】記事一覧ページを作成する方法
H S
Wordpressスマートフォンテーマ作成
Wordpressスマートフォンテーマ作成
Yoshie Nakayama
WordPressのCSSを 理解しよう!
WordPressのCSSを 理解しよう!
BREN
Bootstrapを使って効率よくWordPressオリジナルテーマを作る
Bootstrapを使って効率よくWordPressオリジナルテーマを作る
Yoshinori Kobayashi
WordPressテーマ Foundation for WordPress の紹介
WordPressテーマ Foundation for WordPress の紹介
Takashi Uemura
1日でマスターするWordpress講座
1日でマスターするWordpress講座
光利 吉田
Html講習会資料
Html講習会資料
竹島 泉
いちばん簡単なconcrete5テーマ
いちばん簡単なconcrete5テーマ
Hideki MACHIDA
メディア芸術基礎 II HTML5とは何か? HTML5、はじめの一歩
メディア芸術基礎 II HTML5とは何か? HTML5、はじめの一歩
Atsushi Tadokoro
HTML5 for IA
HTML5 for IA
Atsushi HASEGAWA, Ph.D.
WEB開発はじめの一歩 講師:村井亮介様
WEB開発はじめの一歩 講師:村井亮介様
株式会社GreenHack
HTML5での制作、いつから始める?
HTML5での制作、いつから始める?
Fuminori Mori
Webapp startup example_to_dolist
Webapp startup example_to_dolist
Shinichiro Kumeuchi
HTML入門
HTML入門
sayoko miura
20141119 Movable Type HandsOn Seminar
20141119 Movable Type HandsOn Seminar
Six Apart
情報編集(Web) HTML5とは何か? HTML5、はじめの一歩
情報編集(Web) HTML5とは何か? HTML5、はじめの一歩
Atsushi Tadokoro
WordBeachDeathMarchWorkshop
WordBeachDeathMarchWorkshop
takashi ono
20130406 rainier study
20130406 rainier study
Six Apart
کپی رایتری یا محتوای سئو شده (content seo)
کپی رایتری یا محتوای سئو شده (content seo)
neginEskandari1
Twitterbootstrapでモック開発
Twitterbootstrapでモック開発
Sosuke Kimura
第2回こけむさズword press部
第2回こけむさズword press部
Yuki Suzuki
20140924 mt cloud_handson_seminar
20140924 mt cloud_handson_seminar
Six Apart
SEOについて
SEOについて
noda kana
Html5でword pressテーマを作るよ!
Html5でword pressテーマを作るよ!
Muyuu Fujita
2012: A Web Odyssey
2012: A Web Odyssey
Fuminori Mori
20141206 handson
20141206 handson
Six Apart
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
More Related Content
Similar to これからの「スクレイピング」の話をしよう
Html講習会資料
Html講習会資料
竹島 泉
いちばん簡単なconcrete5テーマ
いちばん簡単なconcrete5テーマ
Hideki MACHIDA
メディア芸術基礎 II HTML5とは何か? HTML5、はじめの一歩
メディア芸術基礎 II HTML5とは何か? HTML5、はじめの一歩
Atsushi Tadokoro
HTML5 for IA
HTML5 for IA
Atsushi HASEGAWA, Ph.D.
WEB開発はじめの一歩 講師:村井亮介様
WEB開発はじめの一歩 講師:村井亮介様
株式会社GreenHack
HTML5での制作、いつから始める?
HTML5での制作、いつから始める?
Fuminori Mori
Webapp startup example_to_dolist
Webapp startup example_to_dolist
Shinichiro Kumeuchi
HTML入門
HTML入門
sayoko miura
20141119 Movable Type HandsOn Seminar
20141119 Movable Type HandsOn Seminar
Six Apart
情報編集(Web) HTML5とは何か? HTML5、はじめの一歩
情報編集(Web) HTML5とは何か? HTML5、はじめの一歩
Atsushi Tadokoro
WordBeachDeathMarchWorkshop
WordBeachDeathMarchWorkshop
takashi ono
20130406 rainier study
20130406 rainier study
Six Apart
کپی رایتری یا محتوای سئو شده (content seo)
کپی رایتری یا محتوای سئو شده (content seo)
neginEskandari1
Twitterbootstrapでモック開発
Twitterbootstrapでモック開発
Sosuke Kimura
第2回こけむさズword press部
第2回こけむさズword press部
Yuki Suzuki
20140924 mt cloud_handson_seminar
20140924 mt cloud_handson_seminar
Six Apart
SEOについて
SEOについて
noda kana
Html5でword pressテーマを作るよ!
Html5でword pressテーマを作るよ!
Muyuu Fujita
2012: A Web Odyssey
2012: A Web Odyssey
Fuminori Mori
20141206 handson
20141206 handson
Six Apart
Similar to これからの「スクレイピング」の話をしよう
(20)
Html講習会資料
Html講習会資料
いちばん簡単なconcrete5テーマ
いちばん簡単なconcrete5テーマ
メディア芸術基礎 II HTML5とは何か? HTML5、はじめの一歩
メディア芸術基礎 II HTML5とは何か? HTML5、はじめの一歩
HTML5 for IA
HTML5 for IA
WEB開発はじめの一歩 講師:村井亮介様
WEB開発はじめの一歩 講師:村井亮介様
HTML5での制作、いつから始める?
HTML5での制作、いつから始める?
Webapp startup example_to_dolist
Webapp startup example_to_dolist
HTML入門
HTML入門
20141119 Movable Type HandsOn Seminar
20141119 Movable Type HandsOn Seminar
情報編集(Web) HTML5とは何か? HTML5、はじめの一歩
情報編集(Web) HTML5とは何か? HTML5、はじめの一歩
WordBeachDeathMarchWorkshop
WordBeachDeathMarchWorkshop
20130406 rainier study
20130406 rainier study
کپی رایتری یا محتوای سئو شده (content seo)
کپی رایتری یا محتوای سئو شده (content seo)
Twitterbootstrapでモック開発
Twitterbootstrapでモック開発
第2回こけむさズword press部
第2回こけむさズword press部
20140924 mt cloud_handson_seminar
20140924 mt cloud_handson_seminar
SEOについて
SEOについて
Html5でword pressテーマを作るよ!
Html5でword pressテーマを作るよ!
2012: A Web Odyssey
2012: A Web Odyssey
20141206 handson
20141206 handson
More from iPride Co., Ltd.
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
iPride Co., Ltd.
AWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作り
iPride Co., Ltd.
AWS (Amazon Web Services) を勉強してみる その3 2024/03/01の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる その3 2024/03/01の勉強会で発表されたものです。
iPride Co., Ltd.
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
iPride Co., Ltd.
可用性・セキュリティを考慮して AWSでDrupalを構築する 2024/02/09の勉強会で発表されたものです。
可用性・セキュリティを考慮して AWSでDrupalを構築する 2024/02/09の勉強会で発表されたものです。
iPride Co., Ltd.
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
iPride Co., Ltd.
AWS CDKを使おうとしたら普通に悪戦苦闘した話 2024/02/02の勉強会で発表されたものです。
AWS CDKを使おうとしたら普通に悪戦苦闘した話 2024/02/02の勉強会で発表されたものです。
iPride Co., Ltd.
AWS (Amazon Web Services) を勉強してみる 2024/01/26の勉強会で発表されたものです
AWS (Amazon Web Services) を勉強してみる 2024/01/26の勉強会で発表されたものです
iPride Co., Ltd.
AWS SAM入門 2024/01/26の勉強会で発表されたものです【アイ・プライド】
AWS SAM入門 2024/01/26の勉強会で発表されたものです【アイ・プライド】
iPride Co., Ltd.
Drupalでフォームの代わりにSPA (React) を表示させる話 2023/12/15の勉強会で発表されたものです。
Drupalでフォームの代わりにSPA (React) を表示させる話 2023/12/15の勉強会で発表されたものです。
iPride Co., Ltd.
ChatGPTを用いてCDKを勉強
ChatGPTを用いてCDKを勉強
iPride Co., Ltd.
OpenID Connectについて
OpenID Connectについて
iPride Co., Ltd.
画像生成AIの問題点
画像生成AIの問題点
iPride Co., Ltd.
AI入門
AI入門
iPride Co., Ltd.
MVCになぞらえて理解するReact
MVCになぞらえて理解するReact
iPride Co., Ltd.
AIについて学んだこと ~ 生成AIとは? ~
AIについて学んだこと ~ 生成AIとは? ~
iPride Co., Ltd.
OAuth2.0について
OAuth2.0について
iPride Co., Ltd.
More from iPride Co., Ltd.
(20)
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS (Amazon Web Services) を勉強してみる その3 2024/03/01の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる その3 2024/03/01の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
可用性・セキュリティを考慮して AWSでDrupalを構築する 2024/02/09の勉強会で発表されたものです。
可用性・セキュリティを考慮して AWSでDrupalを構築する 2024/02/09の勉強会で発表されたものです。
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
AWS CDKを使おうとしたら普通に悪戦苦闘した話 2024/02/02の勉強会で発表されたものです。
AWS CDKを使おうとしたら普通に悪戦苦闘した話 2024/02/02の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる 2024/01/26の勉強会で発表されたものです
AWS (Amazon Web Services) を勉強してみる 2024/01/26の勉強会で発表されたものです
AWS SAM入門 2024/01/26の勉強会で発表されたものです【アイ・プライド】
AWS SAM入門 2024/01/26の勉強会で発表されたものです【アイ・プライド】
Drupalでフォームの代わりにSPA (React) を表示させる話 2023/12/15の勉強会で発表されたものです。
Drupalでフォームの代わりにSPA (React) を表示させる話 2023/12/15の勉強会で発表されたものです。
ChatGPTを用いてCDKを勉強
ChatGPTを用いてCDKを勉強
OpenID Connectについて
OpenID Connectについて
画像生成AIの問題点
画像生成AIの問題点
AI入門
AI入門
MVCになぞらえて理解するReact
MVCになぞらえて理解するReact
AIについて学んだこと ~ 生成AIとは? ~
AIについて学んだこと ~ 生成AIとは? ~
OAuth2.0について
OAuth2.0について
これからの「スクレイピング」の話をしよう
1.
これからの「スクレイ ピング」の話をしよう 〜サイトをマイグレーションするための哲学〜 発表者:トビウオ
2.
概要 • 「Webページを指定すると、そのページとそれにリンク されたページおよびコンテンツを取り込んでDrupal上に再 現する」カスタムモジュールを作成した • 以下は、作成時に考慮した様々な要素についての解説
3.
HTMLのおさらい 出典:「HTML5でマークアップしてみよう-HTML5リファレンス」 • <head>内は、 • ページタイトル •
メタ情報 • リンク情報 • <body>内は、 • ヘッダー • コンテンツ • フッター • スタイルシートはリンク 情報に書くことが多い • ↓↓↓↓↓↓↓↓↓↓ • つまり<head>内はデザイ ン、<body>内は構造を担 当している
4.
HTMLを作成するには • まず、HTMLだけを含むコンテンツタイプを作成
5.
HTMLを作成するには • 次に、作成したコンテンツタイプのコンテンツ(ノード)を カスタムモジュールから作成するようにする。なお、 formatは’full_html’にすること
6.
HTMLを作成しよう • WebページのHTMLをパースして扱うには、以前説明した 「PHP Simple
HTML DOM Parser」を使えばいい • ただ、単に<body>内のデータを取得してコンテンツの中 身に貼り付けただけだと、次のような問題が発生する • 相対パスの問題 • スタイルシートの問題 • リソースファイルの問題
7.
相対パスの解釈方法 • 「http://www.example.com/example.png」などが絶対パス 、「../example.png」などが相対パス • <a>タグのhref属性や<img>タグのsrc属性などはしばしば 相対パスで書かれるので、相対パスを絶対パスに変換し なければならないことが多い •
PHPのrealpath()メソッドはローカルファイル用なので、 ネット上のURLについては自作するしか無い
8.
スタイルシート問題 • スタイルシートは、 <style>タグや<link>タグ で指定される • HTMLにとりあえず反映 させる場合は、<body>内 から切り出したテキスト の先頭に、前述のタグを そのまま貼り付ければい い <head> <style>〜</style> <link
rel="stylesheet" href="sample.css"> </head> <body> <p>〜</p> </body> ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ <style>〜</style> <link rel="stylesheet" href=“sample.css"> <p>〜</p>
9.
スタイルシートはややこしい • <style>{CSSの記述}</style> • <style>.red
{color:red;}</style> • <style>.bg {background: url(“xxx.png”);}</style> • <style>@import “style.css”;</style> • <style>@import url(“style.css”);</style> • <link rel=“stylesheet” href=“style.css”> これら全てに対応する必要がある
10.
リソースファイルについ て • ここで言うところのリソースとは、HTML以外の構成要素(画像、スタイルシート、 JavaScriptなど)を指す • Drupalの場合、file_save_dataで指定したローカルパス(ある命名規則の範囲内なら自 由)に保存し、file_create_urlでそれをネットから参照できるパスに変換し、 file_url_transform_relativeでそれを相対パスに変換する
11.
改行コード問題 • PHP Simple
HTML DOM Parserは、デフォルト設定だと 改行コードを無視する(無視しないオプションにすると実 行中にコケる) • そこで、CR(r)とLF(n)について、それぞれ適当な記号 (¶ と〓)で置換し、ページ登録時に変換し直す荒業で対処
12.
コマンドの実行方法 • 前述のスクレイピング……もといマイグレーション処理 は時間が掛かる • ゆえに、入力→実行→結果表示をWebブラウザ上のForm で実施するとタイムアウトの懸念がある •
そこで、Drupal Consoleに独自コマンドを登録して、CUI 上で処理させることにする
13.
コマンドの作成方法 • Drupal Consoleのドキュメントに「Creating
Custom Commands」があり、それを読めばいい • ただし、「generate:command」コマンドを作らずに自作 するのはかなり難しい • コマンドには名前・説明・引数の名前と説明などを設定 でき、コマンド実行時にexecuteメソッド内の処理が走る 仕組み
14.
コマンドの作成サンプル コマンドの名前と説明・ 引数の名前と説明 コマンドの処理。 引数は文字列で渡されるので 適宜パースする必要がある
15.
現状の課題 • JavaScript内のURLについては対処が難しい • HTMLの構造を変えているので、見た目を再現しきれない 部分もある
16.
参考資料 • PHPで HTMLに埋め込まれた相対パスを絶対パス(URL)に 「一括変換」する
- Qiita • 8 - how to create a file entity programmatically - Drupal Answers • Create a file with Drupal 8 | Drupal 8 • Creating Custom Commands • @importルール|Web制作の基本:StudyNet
Download now