質問編集履歴

3

コードの改正

2022/10/28 10:25

投稿

Lia
Lia

スコア9

test CHANGED
File without changes
test CHANGED
@@ -19,14 +19,26 @@
19
19
 
20
20
  ### 発生している問題・エラーメッセージ
21
21
 
22
+ 大変恐縮なのですがフィルマークスの構造が複雑で自分には難しく、初心者なのでアドバイスをいただけたら幸いです。qiitaなどのネットで調べてみたのですがいまいちピンときたものがなく行き詰まっています。
22
23
 
24
+ ①タイトルに関して
25
+ <span>のみ、という指定をしていないので下の<small>の部分も入っています。
23
- 恐縮ながフィルマークス構造が複雑で自分には難しく、7つうち1つも取得できていない状態す。よって、コードも完成できてなく少丸投げになってしまうかもしれないのですが、アドバイスのほどよろしくお願いいたしますqiitaなどのネットで調べてみたのですがいまいちピンときたものがなく行き詰まっています。
26
+ title = player_infos = soup.find("h2", class_="p-content-detail__title")の数をどようにれば<span>タイトルを取得することができるのでしうか。
24
27
 
28
+ ②「上映時間」では「p-content-detail__other-info-title」が3つあり、その最後のところに記載されている構造となっています。3つめ、というのはどんな指定をすれば取得できるのでしょうか。
29
+
30
+ ③ジャンルに関して
25
- 例えばタイトルを取得するとき、https://filmarks.com/movies/76158
31
+ p-content-detail__genre-titleの下の「ul」の下の「li」に入っています。どのように階層をたどればいいのでしょうか。
32
+
26
- の開発ページを開くと
33
+ ④観た数、保存数
34
+ こちらもclassの名前が同じでしたのでどうやって分けるかが分かりませんでした。
27
- <div class = "p-content-detail__main">の下の
35
+ <a rel="nofollow" href="/login">
28
- <h2 class = "p-content-detail__title">の下にある
36
+ <span class="c-content__count">110732</span></a>
37
+ という構造になっていて、ログインしなくても数値は見えますが、スクレイピングする際はログインするコードも書かなければ、情報を取得できないのでしょうか。出力結果に書いてある通り{{ viewingMarkCount }}となってしまいました。
38
+
29
- <span>の中ありまれはどのようにるのでしょうか
39
+ 以上、4つと、これをcsvファイルすことを目しております。
40
+ アドバイスのほどよろしくお願いいたします。
41
+
30
42
 
31
43
  ### 該当のソースコード
32
44
 
@@ -34,24 +46,43 @@
34
46
  import pandas as pd # data analysis
35
47
  import requests # get url
36
48
  from bs4 import BeautifulSoup
37
- import matplotlib.pyplot as plt
38
- import datetime
39
- import time
40
49
 
41
50
  URL = "https://filmarks.com/movies/76158"
42
51
 
43
52
  html = requests.get(URL) # HTMLを取ってくる
44
53
  soup = BeautifulSoup(html.content, "html.parser") # HTMLを解析する
54
+
55
+
45
- title = player_infos = soup.find("h2", class_="p-content-detail__title")
56
+ title = soup.find("h2", class_="p-content-detail__title").text
57
+ day = soup.find("h3", class_="p-content-detail__other-info-title").text
58
+
59
+ #classが同じ名前だから指定できない、3つめのclassが上映時間となっている
60
+ time = soup.find("h3", class_="p-content-detail__other-info-title").text
61
+
62
+ score = soup.find("div", class_="c-rating__score").text
63
+
64
+ #これも2つ同じ名前
65
+ #左側
66
+ look = soup.find("span", class_="c-content__count").text
67
+ #右側
68
+ save = soup.find("span", class_="c-content__count").text
69
+
46
70
 
47
71
  print(title)
48
-
72
+ print(zyouei)
73
+ print(time)
74
+ print(score)
75
+ print(look)
76
+ print(save)
49
77
  ```
50
78
  ### 出力結果
51
- <h2 class="p-content-detail__title"><span>スパイダーマン:ファー・フロム・ホーム</span><small><a href="/list/year/2010s/2019">2019</a>製作の映画)</small></h2>
79
+ スパイダーマン:ファー・フロム・ホーム(2019年製作の映画)
80
+ 上映日:2019年06月28日
81
+ 上映日:2019年06月28日
82
+ 4.1
83
+ {{ viewingMarkCount }}
84
+ {{ viewingMarkCount }}
52
85
 
53
- <span>のみ、という指定をしていないので下の<small>の部分も入っています。
54
- title = player_infos = soup.find("h2", class_="p-content-detail__title")の変数をどのようにすれば<span>のみのタイトルを取得することができるのでしょうか。
55
86
 
56
87
  またこちらのにも質問をしています。
57
88
  https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12270197322

2

URLを追加

2022/10/28 09:16

投稿

Lia
Lia

スコア9

test CHANGED
File without changes
test CHANGED
@@ -53,3 +53,6 @@
53
53
  <span>のみ、という指定をしていないので下の<small>の部分も入っています。
54
54
  title = player_infos = soup.find("h2", class_="p-content-detail__title")の変数をどのようにすれば<span>のみのタイトルを取得することができるのでしょうか。
55
55
 
56
+ またこちらのにも質問をしています。
57
+ https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12270197322
58
+

1

コードの変更

2022/10/28 08:40

投稿

Lia
Lia

スコア9

test CHANGED
File without changes
test CHANGED
@@ -31,17 +31,25 @@
31
31
  ### 該当のソースコード
32
32
 
33
33
  ```python
34
- from datetime import datetime
34
+ import pandas as pd # data analysis
35
+ import requests # get url
35
36
  from bs4 import BeautifulSoup
37
+ import matplotlib.pyplot as plt
36
- import requests
38
+ import datetime
39
+ import time
37
40
 
38
- r=requests.get('https://filmarks.com/movies/76158')
41
+ URL = "https://filmarks.com/movies/76158"
39
- soup=BeautifulSoup(r.text,'html.parser')
40
42
 
41
- list=[] #各記事の情報格納すためのリスト
43
+ html = requests.get(URL) # HTML取ってく
44
+ soup = BeautifulSoup(html.content, "html.parser") # HTMLを解析する
45
+ title = player_infos = soup.find("h2", class_="p-content-detail__title")
42
46
 
43
- #この下にきっと変数を指定していく,,,,
47
+ print(title)
44
48
 
45
49
  ```
50
+ ### 出力結果
51
+ <h2 class="p-content-detail__title"><span>スパイダーマン:ファー・フロム・ホーム</span><small>(<a href="/list/year/2010s/2019">2019年</a>製作の映画)</small></h2>
46
52
 
53
+ <span>のみ、という指定をしていないので下の<small>の部分も入っています。
54
+ title = player_infos = soup.find("h2", class_="p-content-detail__title")の変数をどのようにすれば<span>のみのタイトルを取得することができるのでしょうか。
47
55