回答編集履歴

2

補足

2020/05/24 05:04

投稿

otn
otn

スコア84538

test CHANGED
@@ -66,6 +66,6 @@
66
66
 
67
67
 
68
68
 
69
- print(len(x))
69
+ print(len(x)) #=> 80個取得できていることがわかる
70
70
 
71
71
  ```

1

追記

2020/05/24 05:04

投稿

otn
otn

スコア84538

test CHANGED
@@ -25,3 +25,47 @@
25
25
 
26
26
 
27
27
  Seleniumを使ってJavaScriptを実行しながら取得するか、上記のように埋め込まれているHTMLを加工して埋め込まれているタグを取り出してからパースするか。
28
+
29
+
30
+
31
+ #追記
32
+
33
+ 後者の方針で、ちょっとやってみました。
34
+
35
+ ```Python
36
+
37
+ import requests
38
+
39
+ from bs4 import BeautifulSoup
40
+
41
+ import re
42
+
43
+
44
+
45
+ url = "https://ranking.rakuten.co.jp/daily/408076/"
46
+
47
+ html = requests.get(url).content
48
+
49
+
50
+
51
+ del1 = re.compile(rb'<script language="JavaScript" type="text/javascript">\s*<!--\s*var line = (function() \{/*',re.DOTALL)
52
+
53
+ del2 = re.compile(rb'*/\}).toString();.+?</script>',re.DOTALL)
54
+
55
+
56
+
57
+ html = del2.sub(b'',del1.sub(b'', html))
58
+
59
+
60
+
61
+ bs = BeautifulSoup(html,'html.parser')
62
+
63
+
64
+
65
+ x = bs.findAll(class_='rnkRanking_price')
66
+
67
+
68
+
69
+ print(len(x))
70
+
71
+ ```