質問編集履歴

2

問題をわかりやすくしました

2017/02/28 14:53

投稿

RyuSA
RyuSA

スコア131

test CHANGED
File without changes
test CHANGED
@@ -1,12 +1,10 @@
1
- ###Pythonでスクレイピングしたい!
1
+ ###PythonでのWebスクレイピング
2
-
3
- PythonモジュールのBeautifulSoupやseleniumを用いてWebスクレイピングをやりたい。
4
2
 
5
3
  簡単なWebサイトのスクレイピングはできたものの、JavascriptでレンダリングされているようなWebページでのスクレイピングで苦戦中です。
6
4
 
7
5
 
8
6
 
9
- ###発生している問題・エラーメッセージ
7
+ ###発生している問題
10
8
 
11
9
  今、某魚拓サイトをスクレイピングしようとしています。
12
10
 
@@ -18,7 +16,9 @@
18
16
 
19
17
 
20
18
 
21
- 本当は、該当Webページの<iframe ...> (onloadで書き込まれる) </iframe>の中身を取ってきたいのですが、素直にソースコードを持ってきてもダメなようです。(以下のソースコード参照)
19
+ 該当Webページの<iframe ...> (魚拓部分) </iframe>の中身を取ってきたいのですが、素直にソースコードを持ってきてもダメなようです。
20
+
21
+ 具体的には、以下のソースのように持ってきても<iframe...></iframe>と中身が入っていない状態で返ってきてしまうようです。
22
22
 
23
23
 
24
24
 
@@ -44,6 +44,8 @@
44
44
 
45
45
  driver.get(url)
46
46
 
47
+ // driver.page_sourceからすでにiframe内にはないようです
48
+
47
49
  htmls = lxml.html.fromstring(driver.page_source)
48
50
 
49
51
  sources = htmls.cssselect('iframe')

1

不要なものを削除

2017/02/28 14:53

投稿

RyuSA
RyuSA

スコア131

test CHANGED
File without changes
test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
 
21
- 本当は、該当Webページの<iframe ...> (onloadで書き込まれる) </iframe>の中身を取ってきたいのですが、どうやらこの中身はJavaScript制御されているようで、素直にソースコードを持ってきてもダメなようです
21
+ 本当は、該当Webページの<iframe ...> (onloadで書き込まれる) </iframe>の中身を取ってきたいのですが、素直にソースコードを持ってきてもダメなようです。(以下のソースコード参照)
22
22
 
23
23
 
24
24
 
@@ -53,17 +53,3 @@
53
53
  print(source.text)
54
54
 
55
55
  ```
56
-
57
-
58
-
59
- ###試したこと
60
-
61
- 最初はrequestsモジュールを用いていましたが、Javascriptレンダリングには対応できていないと聞いたので
62
-
63
- ヘッドレスブラウザのphantomjsを用いてやってみようとしていました。
64
-
65
-
66
-
67
- ###補足情報(言語/FW/ツール等のバージョンなど)
68
-
69
- Python3.6.0