質問編集履歴

1

ソースコードに追記しました。実は普段selectやfindを使って追記ソースコードのようにCSSでスクレイピングしてるので、追記ソースコード部分をどう直すか教えてほしいです。

2025/01/22 08:35

投稿

kazusa
kazusa

スコア3

test CHANGED
File without changes
test CHANGED
@@ -30,6 +30,49 @@
30
30
 
31
31
  #ここです
32
32
 
33
+
34
+ ################################################
35
+
36
+ # あとこういう感じでselectやfindを使ってCSSでhtmlを指定してスクレイピングしています
37
+ # なのでこういう書き方を少し直して、謎の空欄を削除するとしたら、を教えていただけるとありがたいです。
38
+ # すみませんが、よろしくお願いします。
39
+
40
+ import requests
41
+ from bs4 import BeautifulSoup
42
+
43
+
44
+ course_names = []
45
+ race_names = []
46
+
47
+ #レース実施条件の一行を取得
48
+
49
+ load_url_kari = "https://www.keibalab.jp/db/race/202411170811/course.html"
50
+ headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.3"}
51
+ html2 = requests.get(load_url_kari, headers=headers)
52
+ soup = BeautifulSoup(html2.content, "html.parser")
53
+ course_name = soup.select('h3[class*="courseHeading"]')[0].text
54
+
55
+ # course_name.replace(" ","")
56
+ # course_name.ljust(0)
57
+
58
+ course_names.append(course_name)
59
+
60
+ for x in course_names:
61
+ print(x)
62
+
63
+
64
+ # レース名を取得
65
+
66
+ load_url_kari_2 = "https://www.keibalab.jp/db/race/202411170811/"
67
+ headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.3"}
68
+ html22 = requests.get(load_url_kari_2, headers=headers)
69
+ soup2 = BeautifulSoup(html22.content, "html.parser")
70
+ race_name = soup2.select('h1[class*="raceTitle fL"]')[0].text
71
+ race_names.append(race_name)
72
+
73
+ for y in race_names:
74
+ print(y)
75
+
33
76
  ```
34
77
 
35
78
  ### 試したこと・調べたこと
@@ -46,3 +89,6 @@
46
89
  なのでこれらで教えてください。
47
90
  競馬ラボからスクレイピングするにはUserAgentが必要です。
48
91
 
92
+ 1月22日17時35分追記:Xpathでの回答を頂くことができましたが、実は普段は上記追記ソースコードのようにCSSでスクレイピングしているので、そちらでのやり方を教えていただきたいです。
93
+ すみませんが、よろしくお願いします。
94
+