webページの中のURLを集めてそれをショートカットにするアプリを作ろうとチャレンジしています
そこで質問なのですが、ウェブページからURLを抽出するところまではなんとかできたのですが、抽出したURLから使いたいURLの部分を取り出せなくて難儀しています
textAの部分にwebContentのURLを入れたいのですが、どうすればよいのですか?
textAは暫定的に複数行のStringです
また、取り出したURLのクエリ部分を配列としてまとめたいと考えています
クエリを取り出せる方法をご存知の方教えていただければとおもいます
https://www.nasdaq.com/symbol/aaon←最後の部分がクエリです
swift
1import SafariServices 2 3var textA = """ 4""" 5 6var todayStocks:[String] = [] 7var a = 1 8 9class ViewController: UIViewController{ 10 11 12 func showSafariVC(for url: String){ 13 guard let url = URL(string: url) else { 14 return 15 } 16 let safariVC = SFSafariViewController(url: url) 17 present(safariVC,animated: true) 18 } 19 20 21 @IBAction func watchC(_ sender: Any) { 22 showSafariVC(for: todayStocks[a]) 23 a = a + 1 24 25 26 } 27 28 override func viewDidLoad() { 29 super.viewDidLoad() 30 31 32 let urlString = "https://www.nasdaq.com/aspx/52-week-high-low.aspx" 33 guard let url = URL(string: urlString) else { return } 34 35 let task = URLSession.shared.dataTask(with: url) { 36 (data, response, error) -> Void in 37 if let urlContent = data { 38 let webContent = String(data: urlContent, encoding: .utf8) 39 print(webContent!) 40 } 41 42 } 43 task.resume() 44 45 if textA.isEmpty{ 46 textA = "hhh" 47 var textAtext:[String] = textA.components(separatedBy: "\n") 48 let co = textAtext.count 49 let co2 = co/2 50 51 for i in 1...co2 { 52 textAtext.remove(at: i) 53 54 todayStocks = [] 55 56 for str in textAtext { 57 let last:String = "https://www.marketwatch.com/investing/stock/(str)/charts" 58 print(last) 59 todayStocks.append(last) 60 print(todayStocks) 61 } 62 } 63 } 64 65 } 66 67 68} 69
> ウェブページからURLを抽出するところまではなんとかできた
「ウェブサイトのURLからHTMLのソースを取得するところまでできた」、の間違いですかね?
URLを抽出しているようには見えませんが・・・
でこのHTMLのソースから、何を抽出したいのでしょう。
<h3><a href="https://www.nasdaq.com/symbol/has">HAS</a></h3>
を抽出してseparateでHAS部分を取り出したいと考えています
Componentsのseparatedby を使ってもうまく行かないので困っています
https://teratail.com/questions/202633
と本質的に質問が同じであれば重複なので削除依頼を出してください。
解決したのであれば質問をクローズしてください。
あなたの回答
tips
プレビュー