質問編集履歴
2
問題をわかりやすくしました
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
###Pythonでスクレイピング
|
|
1
|
+
###PythonでのWebスクレイピング
|
|
2
|
-
PythonモジュールのBeautifulSoupやseleniumを用いてWebスクレイピングをやりたい。
|
|
3
2
|
簡単なWebサイトのスクレイピングはできたものの、JavascriptでレンダリングされているようなWebページでのスクレイピングで苦戦中です。
|
|
4
3
|
|
|
5
|
-
###発生している問題
|
|
4
|
+
###発生している問題
|
|
6
5
|
今、某魚拓サイトをスクレイピングしようとしています。
|
|
7
6
|
挑戦中のWebページは以下のページです。(スクレイピング先の内容に特に意味はないです……)
|
|
8
7
|
|
|
9
8
|
ページ:[http://megalodon.jp/2014-0421-0310-13/sucrose.hatenablog.com/entry/2014/04/21/000909](http://megalodon.jp/2014-0421-0310-13/sucrose.hatenablog.com/entry/2014/04/21/000909)
|
|
10
9
|
|
|
11
|
-
|
|
10
|
+
該当Webページの<iframe ...> (魚拓部分) </iframe>の中身を取ってきたいのですが、素直にソースコードを持ってきてもダメなようです。
|
|
11
|
+
具体的には、以下のソースのように持ってきても<iframe...></iframe>と中身が入っていない状態で返ってきてしまうようです。
|
|
12
12
|
|
|
13
13
|
上手いやり方を知っている方、ご教授願いませんか?
|
|
14
14
|
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
url = "http://megalodon.jp/2014-0421-0310-13/sucrose.hatenablog.com/entry/2014/04/21/000909"
|
|
22
22
|
driver = webdriver.PhantomJS()
|
|
23
23
|
driver.get(url)
|
|
24
|
+
// driver.page_sourceからすでにiframe内にはないようです
|
|
24
25
|
htmls = lxml.html.fromstring(driver.page_source)
|
|
25
26
|
sources = htmls.cssselect('iframe')
|
|
26
27
|
for source in sources:
|
1
不要なものを削除
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
ページ:[http://megalodon.jp/2014-0421-0310-13/sucrose.hatenablog.com/entry/2014/04/21/000909](http://megalodon.jp/2014-0421-0310-13/sucrose.hatenablog.com/entry/2014/04/21/000909)
|
|
10
10
|
|
|
11
|
-
本当は、該当Webページの<iframe ...> (onloadで書き込まれる) </iframe>の中身を取ってきたいのですが、
|
|
11
|
+
本当は、該当Webページの<iframe ...> (onloadで書き込まれる) </iframe>の中身を取ってきたいのですが、素直にソースコードを持ってきてもダメなようです。(以下のソースコード参照)
|
|
12
12
|
|
|
13
13
|
上手いやり方を知っている方、ご教授願いませんか?
|
|
14
14
|
|
|
@@ -25,11 +25,4 @@
|
|
|
25
25
|
sources = htmls.cssselect('iframe')
|
|
26
26
|
for source in sources:
|
|
27
27
|
print(source.text)
|
|
28
|
-
```
|
|
28
|
+
```
|
|
29
|
-
|
|
30
|
-
###試したこと
|
|
31
|
-
最初はrequestsモジュールを用いていましたが、Javascriptレンダリングには対応できていないと聞いたので
|
|
32
|
-
ヘッドレスブラウザのphantomjsを用いてやってみようとしていました。
|
|
33
|
-
|
|
34
|
-
###補足情報(言語/FW/ツール等のバージョンなど)
|
|
35
|
-
Python3.6.0
|