質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Beautiful Soup

Beautiful Soupは、Pythonのライブラリの一つ。スクレイピングに特化しています。HTMLデータの構文の解析を行うために、HTMLタグ/CSSのセレクタで抽出する部分を指定することが可能です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

解決済

2回答

325閲覧

Webスクレイピング

goki_gottan

総合スコア168

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Beautiful Soup

Beautiful Soupは、Pythonのライブラリの一つ。スクレイピングに特化しています。HTMLデータの構文の解析を行うために、HTMLタグ/CSSのセレクタで抽出する部分を指定することが可能です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

1クリップ

投稿2019/03/28 18:11

Pythonであるwebページの全てのリンクを取得しようと思います。
Beautiful.soupで特定の解析はしたことがありますが、全てのリンクを取得することはしたことはなく、質問させてください。
aタグのリンクを全て取得すれば、サイトの様々なリンクを取得できるかと思っておりますが、java遷移があるリンクは取得できないと思います。
そこで、
1、リンクアドレスをくまなく取得できているかの確認はありませんでしょうか。
2、java遷移している箇所の特定と、遷移しているかの有無を調べる方法はありますか。
宜しくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/03/28 21:47

タイトルは質問内容に寄せてください。これでは何が問題かわかりませんし、同じタイトルが続くことになりませんか? また、スクレイピングはグレーなところがあります(他所の情報を勝手に自動取得するわけですし)その辺りはクリアにされてから取り組まれた方がトラブルなく進められると思います。
m.ts10806

2019/03/29 00:11

seleniumがタグについてますがどのように関係するのでしょうか。
otn

2019/03/29 00:58

> java遷移 これは何ですか?
goki_gottan

2019/03/29 16:58

JS遷移のことですよ? 1,2のご回答をお願いします。 すべてクロールしますが、クロールしてないところはないかの確認です
otn

2019/03/29 17:17

どこかの会社の方言ですかね?
goki_gottan

2019/03/29 17:31

冷やかしはやめてくださいね。 それともどこかのライバルサイトの方でしょうか。
otn

2019/03/29 18:24

冷やかし??? 一般的で無い、質問者の独自の用語の意味を問うているのですが?質問の中心の用語なので。
退会済みユーザー

退会済みユーザー

2019/03/30 14:45

JavaとJavaScriptの違いに無神経なのは論外
guest

回答2

0

java遷移はjavascriptのことと解釈しました。

https://ja.m.wikipedia.org/wiki/シングルページアプリケーション

よくあるSPAはどこまでが同じページとみなすのか、という問題があるので、難しいのではないでしょうか?

結局、リンクを全て取得して、何をしたいのかによると思います。

投稿2019/03/28 22:39

mkgrei

総合スコア8560

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

goki_gottan

2019/03/29 17:13

どこまでが同じとみなす・・・ですか。 サイト内にあるリンクをすべてクロールしたいのが目的です。 ほとんど見ることができるのですが、果たして本当に全部クロールしているのか、わかりませんので・・・
guest

0

ベストアンサー

Requests-HTMLにabsolute_linksでページ内のリンク全部取得できるようなので
試して報告いただけたらと思います。

JavaScriptでレンダリングしたサンプルです

https://html.python-requests.org/

python

1from requests_html import HTMLSession 2session = HTMLSession() 3 4r = session.get('http://example.com/') 5 6# JavaScriptでレンダリング 7r.html.render() 8 9# ページ上のすべてのリンクの絶対アドレスをset型で取得 10r.html.absolute_links

Python, set型で集合演算(和集合、積集合や部分集合の判定など)
https://note.nkmk.me/python-set/

あとはリンクのリスト同士を差集合してみてください。

投稿2019/03/30 13:50

編集2019/03/30 13:53
barobaro

総合スコア1286

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

goki_gottan

2019/03/30 14:43

ご回答ありがとうございます。何かすごい有益な情報な気がいたします。 Requests-HTMLにabsolute_links 調べてみますね。 書いていただいたコードは、Python言語でしょうか。 Javascriptでレンダリングとは、ホームページをpython言語でJavascriptを使って動かすという感じでしょうか。調べてみます。 ありがとうございます。
goki_gottan

2019/03/31 08:48

ありがとうございます。確認いたしました。 サイトにも、JS遷移に対応していることも書いており、aタグのリンクだけでなく、JS遷移も追えそうです。 ありがとうございます。
goki_gottan

2019/04/04 14:19

absolute_linksで取得する際、リンク元テキストもとれることはできないでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問