質問編集履歴

1

解答を受け、新たな疑問

2020/06/01 13:32

投稿

pumskin
pumskin

スコア1

test CHANGED
File without changes
test CHANGED
@@ -12,37 +12,13 @@
12
12
 
13
13
  ### 知りたい事
14
14
 
15
- h4タグ内のhref属性のみ抽出し、リスト化したいがhrefのみのリストの作り方わかりせん
15
+ h4タグ内のhref属性のみ抽出し、絶対URLに変換したいが取得したいhref属性取得されてしいます
16
+
17
+ 自分が取得したいのは各店舗のURLです。
18
+
19
+ どのようにタグを指定すればよいのでしょうか。
16
20
 
17
21
 
18
-
19
- tagオブジェクト。getText()も試しましたがAttributeErrorが出ます。
20
-
21
-
22
-
23
- 調べながら書いているので先のコードは全くできていませんが、この質問では、店舗名部分のh4タグからhrefを取り出してリスト化する方法をご教授願いたいです。
24
-
25
- 最初から店舗のhrefを取り出す方法してリスト化する方法でも構いません。
26
-
27
- for ではなく url_list=("href")に繋げたいです。
28
-
29
-
30
-
31
- ### 試したコード
32
-
33
- ```
34
-
35
- for a in soup_findAll('h4'):
36
-
37
- print(a.get('html'))
38
-
39
- ```
40
-
41
- ```
42
-
43
- url_list=soup.findAll('h4 a href')
44
-
45
- ```
46
22
 
47
23
  ### 自分で書いたコード(途中)
48
24
 
@@ -50,42 +26,70 @@
50
26
 
51
27
  ```
52
28
 
53
- import time
54
-
55
- import csv
56
-
57
29
  import requests
58
30
 
59
- from bs4 import beautifulsoup
31
+ from bs4 import BeautifulSoup
32
+
33
+ from urllib.parse import urljoin
60
34
 
61
35
 
62
36
 
63
- url = requests.get('https://ramendb.supleks.jp/search?q=&state=&order=point&station-id=&tag%5B%5D=3&type=') #元URL
37
+ shop_list_url = 'https://ramendb.supleks.jp/search?q=&state=&order=point&station-id=&tag%5B%5D=3&type='
64
-
65
- soup = BeautifulSoup(url.text,"html.parser")
66
38
 
67
39
 
68
40
 
69
- url_list = soup.select('h4 a') #取得URL、店舗名
70
-
71
- for link in url_list:
41
+ ua = ""
72
-
73
- print(link.get("href")) #取得URL出力
74
42
 
75
43
 
76
44
 
77
- jurl = requests.get(url_list)
45
+ #大元URL
78
46
 
47
+ base_url = 'https://ramendb.supleks.jp'
48
+
49
+ #検索URL
50
+
51
+ shop_url = base_url + "/search?page=1&order=point&station-id=0&tags=3"
52
+
53
+ page = requests.get(shop_url,headers={"User-Agent" : ua})
54
+
79
- soup = BeautifulSoup(jurl.text,"html.parser")
55
+ soup = BeautifulSoup(page.text,"html.parser")
80
56
 
81
57
 
82
58
 
59
+ for a in soup.select("h4 a"):
60
+
83
- next_page = soup.find("a class="next" href") #次の20件
61
+ shop_url_list = urljoin(shop_url,a.get("href"))
62
+
63
+
64
+
65
+ print(shop_url_list)
84
66
 
85
67
 
86
68
 
87
69
  ```
88
70
 
71
+ ### 返し
72
+
73
+ ```
74
+
75
+ print(shop_url_list)
76
+
77
+ https://ramendb.supleks.jp/rank/hot-shop
78
+
79
+ ```
80
+
81
+ ### 試したコード
82
+
83
+ ```
84
+
85
+ for a in soup.select("#searched > h4 > a"):
86
+
87
+ shop_url_list = urljoin(shop_url,a.get("href"))
88
+
89
+ ```
90
+
91
+
92
+
89
93
 
90
94
 
91
95
  至らぬ点が多いと思いますが、宜しくお願い致します。