質問編集履歴
2
コード表示に修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
・python 3.8.0a1
|
7
7
|
・Django 2.2
|
8
8
|
#問題① スクレイピングした内容をfor文でリストにして、HTMLファイルに渡すとうまく表示してくれない(リストにせずにHTMLファイルに渡すと上手く表示してくれる。)
|
9
|
-
|
9
|
+
```
|
10
10
|
def ad_ranking(request):
|
11
11
|
url = "https://search.rakuten.co.jp/search/mall/%E3%83%94%E3%82%A2%E3%82%B9/?f=1&grp=product"
|
12
12
|
headers={"User-Agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) > > AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",}
|
@@ -29,7 +29,7 @@
|
|
29
29
|
}
|
30
30
|
return render(request, 'rakutencpc/ad_ranking.html', dic)
|
31
31
|
|
32
|
-
|
32
|
+
```
|
33
33
|
↓ブラウザ(表示結果)
|
34
34
|
[]
|
35
35
|
[]
|
@@ -39,10 +39,10 @@
|
|
39
39
|
[<div class="item _rightfloated"> aaa </div>, <div class="item _rightfloated"> xxx </div>] ←リストにせずに渡したぶんは上手く表示してくれます(問題②にも繋がりますが、この"aaa","xxx"といった部分を抽出したいのですが、これも上手くいきません…
|
40
40
|
|
41
41
|
#問題② beautiful soupで一度find_all()などの関数を使ったテキストをさらにfind()などの関数を使うとエラーになる
|
42
|
-
|
42
|
+
```
|
43
43
|
test3 = soup.find_all('a')
|
44
44
|
test3 = soup.find_all('div')
|
45
|
-
|
45
|
+
```
|
46
46
|
↓エラーメッセージ
|
47
47
|
AttributeError at /ad_ranking/
|
48
48
|
ResultSet object has no attribute 'find_all'. You're probably treating a list of items like a single item. Did you call find_all() when you meant to call find()?
|
1
title
CHANGED
File without changes
|
body
CHANGED
@@ -53,4 +53,5 @@
|
|
53
53
|
**以上が抱えている問題です。
|
54
54
|
拙い文章でわかりにくいかもしれませんが、
|
55
55
|
ご助言いただけれると助かります。
|
56
|
-
よろしくお願いいたします。**
|
56
|
+
よろしくお願いいたします。**
|
57
|
+
なお、楽天apiも検討しましたがapiでは取得できない箇所もございましたので、上記についてアドバイスいただけると幸いです。
|