Şarkı sözü uygulaması

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Uzman Üye
Katılım
22 May 2018
Mesajlar
191
Tepki puanı
25
Ödüller
8
8 HİZMET YILI
ilk öncelikle selamın aleyküm ben c# html agility pack ile şarkı sözü uygulaması yapmaya çalıştım en sonda html olarak xpathin çıktısını aldım ama çıktıda href kısmını almak istiyorum sadece nasıl yapabilirim
çıktı: <a class="title" href="/lyrics/Rota-6/X-Ray"><span>X-Ray</span></a>

C#:
 static void Main(string[] args)
        {
            Console.ForegroundColor = ConsoleColor.Red;
            string sarkici, sarki;
            Console.WriteLine("Sarkici:");
            sarkici = Console.ReadLine();
            Console.WriteLine("Sarki:");
            sarki = Console.ReadLine();
            var url = new Uri("https://www.musixmatch.com/search/" + sarkici + sarki);
            HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
            var client = new WebClient();
            client.Encoding = Encoding.UTF8;
            client.Headers.Add("user-agent", Guid.NewGuid().ToString());
            var html = client.DownloadString(url);
            doc.LoadHtml(html);

            var resultText = doc.DocumentNode.SelectSingleNode("/html/body/div[2]/div/div[2]/div/div/div/div[2]/div/div[1]/div[1]/div[2]/div/ul/li/div/div[2]/div/h2");
            Console.WriteLine(resultText.InnerHtml);
        }
 

Why

Ma name is enough
Süper Üye
Katılım
8 Nis 2017
Mesajlar
904
Çözümler
98
Tepki puanı
307
Ödüller
10
9 HİZMET YILI
Merhaba,
sana vereceğim adresten detaylı bir şekilde neler yapman gerektiğini öğrenebilirsin.

Bağlantıları görmek için lütfen Giriş Yap


Farkı soru ve hataların için iletişime geçebilirsin.
WHY?
 
Tutti mi chiedono perché ho imparato questa lingua
Süper Üye
Katılım
17 Mar 2016
Mesajlar
634
Çözümler
5
Tepki puanı
112
Ödüller
11
10 HİZMET YILI
Result text kısmını şöyle değiştirip denermisin

HtmlNode resultText = doc.DocumentNode.SelectSingleNode("/html/body/div[2]/div/div[2]/div/div/div/div[2]/div/div[1]/div[1]/div[2]/div/ul/li/div/div[2]/div/h2"); string hrf = resultText.Attributes["href"].Value; Console.WriteLine(hrf);

Senin yerine denedim ama bunun doğru olması lazımdı, xpath aldığın elementte href olduğuna eminmisin?
 
Son düzenleme:
Uzman Üye
Katılım
22 May 2018
Mesajlar
191
Tepki puanı
25
Ödüller
8
8 HİZMET YILI
Result text kısmını şöyle değiştirip denermisin

HtmlNode resultText = doc.DocumentNode.SelectSingleNode("/html/body/div[2]/div/div[2]/div/div/div/div[2]/div/div[1]/div[1]/div[2]/div/ul/li/div/div[2]/div/h2"); string hrf = resultText.Attributes["href"].Value; Console.WriteLine(hrf);

Senin yerine denedim ama bunun doğru olması lazımdı, xpath aldığın elementte href olduğuna eminmisin?
evet eminim buda çıktı
Screenshot_9.png
işaretlediğim gibi href var.
 
Tutti mi chiedono perché ho imparato questa lingua
Süper Üye
Katılım
17 Mar 2016
Mesajlar
634
Çözümler
5
Tepki puanı
112
Ödüller
11
10 HİZMET YILI
evet eminim buda çıktıEkli dosyayı görüntüle 67410 işaretlediğim gibi href var.
o zaman href alacağımıza stringden hrefi ayıklatalım yani şöyle

resultTextten de dahil şöyle değiştir
HtmlNode resultText = doc.DocumentNode.SelectSingleNode("/html/body/div[2]/div/div[2]/div/div/div/div[2]/div/div[1]/div[1]/div[2]/div/ul/li/div/div[2]/div/h2"); string fullText = resultText.InnerHtml; string[] splitlenmiş = fullText.Split(" "); string bulundu=""; for (int i=0; i<splitlenmiş.Length; i++) { if (splitlenmiş[i].Contains("href")) { bulundu = splitlenmiş[i]; } } bulundu = bulundu.Remove(bulundu.IndexOf("<span")); Console.WriteLine(bulundu); string tamDonusturuldu = bulundu; tamDonusturuldu= tamDonusturuldu.Replace("href=",""); tamDonusturuldu= tamDonusturuldu.Replace(">",""); tamDonusturuldu = tamDonusturuldu.Substring(1, tamDonusturuldu.Length - 1).Substring(0, tamDonusturuldu.Length - 2); Console.WriteLine(tamDonusturuldu); string urlX = "https://www.musixmatch.com" + tamDonusturuldu; var prs = new ProcessStartInfo(@"C:\Program Files\Google\Chrome\Application\chrome.exe"); // kendi chrome yolunu yaz prs.Arguments = urlX; Process.Start(prs);

bu sana href i verecek ve sadece href içi değeri verecek + chrome yolun seninde böyleyse chromede sayfayı açacak :)
 
Uzman Üye
Katılım
22 May 2018
Mesajlar
191
Tepki puanı
25
Ödüller
8
8 HİZMET YILI
o zaman href alacağımıza stringden hrefi ayıklatalım yani şöyle

resultTextten de dahil şöyle değiştir
HtmlNode resultText = doc.DocumentNode.SelectSingleNode("/html/body/div[2]/div/div[2]/div/div/div/div[2]/div/div[1]/div[1]/div[2]/div/ul/li/div/div[2]/div/h2"); string fullText = resultText.InnerHtml; string[] splitlenmiş = fullText.Split(" "); string bulundu=""; for (int i=0; i<splitlenmiş.Length; i++) { if (splitlenmiş[i].Contains("href")) { bulundu = splitlenmiş[i]; } } bulundu = bulundu.Remove(bulundu.IndexOf("<span")); Console.WriteLine(bulundu); string tamDonusturuldu = bulundu; tamDonusturuldu= tamDonusturuldu.Replace("href=",""); tamDonusturuldu= tamDonusturuldu.Replace(">",""); tamDonusturuldu = tamDonusturuldu.Substring(1, tamDonusturuldu.Length - 1).Substring(0, tamDonusturuldu.Length - 2); Console.WriteLine(tamDonusturuldu); string urlX = "https://www.musixmatch.com" + tamDonusturuldu; var prs = new ProcessStartInfo(@"C:\Program Files\Google\Chrome\Application\chrome.exe"); // kendi chrome yolunu yaz prs.Arguments = urlX; Process.Start(prs);

bu sana href i verecek ve sadece href içi değeri verecek + chrome yolun seninde böyleyse chromede sayfayı açacak :)
Eyvallah kral eve gidiyim denicem
 
Tutti mi chiedono perché ho imparato questa lingua
Süper Üye
Katılım
17 Mar 2016
Mesajlar
634
Çözümler
5
Tepki puanı
112
Ödüller
11
10 HİZMET YILI
Eyvallah kral eve gidiyim denicem
Çalışıyor kanks bizzat denedim bunu geliştirip console ye şarkı sözlerini yazabilirsin yapacagin tek onunda xpath ini bulman ama formda selenium kullanarak daha çok şey yapabilirsin
 
Uzman Üye
Katılım
22 May 2018
Mesajlar
191
Tepki puanı
25
Ödüller
8
8 HİZMET YILI
Çalışıyor kanks bizzat denedim bunu geliştirip console ye şarkı sözlerini yazabilirsin yapacagin tek onunda xpath ini bulman ama formda selenium kullanarak daha çok şey yapabilirsin
teşekkür ederim denedim ve sonuş aldım çalışıyor ilk selenium ile yapıcaktım ama onu daha az biliyorum .d ona geçicem bundan sonrada tekrardan teşekkür ederim
 
Uzman Üye
Katılım
22 May 2018
Mesajlar
191
Tepki puanı
25
Ödüller
8
8 HİZMET YILI
Çalışıyor kanks bizzat denedim bunu geliştirip console ye şarkı sözlerini yazabilirsin yapacagin tek onunda xpath ini bulman ama formda selenium kullanarak daha çok şey yapabilirsin
kral ben gene yapamadım .d şimdide sözlerin xpathini aldım ama consola yazdırırken hata alıyorum InnerText olarak yazdırmaya çalıştım olmadı html olarak yapıncada olmadı ama sadece onu yazdırmaya çalışınca hata vermiyo ama bişeyde yazmıyo
 
Tutti mi chiedono perché ho imparato questa lingua
Süper Üye
Katılım
17 Mar 2016
Mesajlar
634
Çözümler
5
Tepki puanı
112
Ödüller
11
10 HİZMET YILI
kral ben gene yapamadım .d şimdide sözlerin xpathini aldım ama consola yazdırırken hata alıyorum InnerText olarak yazdırmaya çalıştım olmadı html olarak yapıncada olmadı ama sadece onu yazdırmaya çalışınca hata vermiyo ama bişeyde yazmıyo
Kanks çalışıyorum eve gelince deniyecem olmazsa sana selenium ile yaparım sende inceler öğrenirsin
 
Tutti mi chiedono perché ho imparato questa lingua
Süper Üye
Katılım
17 Mar 2016
Mesajlar
634
Çözümler
5
Tepki puanı
112
Ödüller
11
10 HİZMET YILI
kral ben gene yapamadım .d şimdide sözlerin xpathini aldım ama consola yazdırırken hata alıyorum InnerText olarak yazdırmaya çalıştım olmadı html olarak yapıncada olmadı ama sadece onu yazdırmaya çalışınca hata vermiyo ama bişeyde yazmıyo
al biladerim bunlarıda ekle tamamdır

Console.ForegroundColor = ConsoleColor.White; var newUrl = new Uri(urlX); HtmlAgilityPack.HtmlDocument doc2 = new HtmlAgilityPack.HtmlDocument(); var client2 = new WebClient(); client2.Encoding = Encoding.UTF8; client2.Headers.Add("user-agent", Guid.NewGuid().ToString()); var html2 = client2.DownloadString(newUrl); doc2.LoadHtml(html2); Console.WriteLine(); Console.WriteLine("---------------Sözler---------------"); Console.WriteLine(); HtmlNode sözler0 = doc2.DocumentNode.SelectSingleNode("//*[@id='site']/div/div/div/main/div/div/div[3]/div[1]/div/div/div/div[2]/div[1]/span/p/span"); Console.WriteLine(sözler0.InnerHtml); HtmlNode sözler = doc2.DocumentNode.SelectSingleNode("//*[@id='site']/div/div/div/main/div/div/div[3]/div[1]/div/div/div/div[2]/div[1]/span/div/p/span"); Console.WriteLine(sözler.InnerHtml);
 
Uzman Üye
Katılım
22 May 2018
Mesajlar
191
Tepki puanı
25
Ödüller
8
8 HİZMET YILI
al biladerim bunlarıda ekle tamamdır

Console.ForegroundColor = ConsoleColor.White; var newUrl = new Uri(urlX); HtmlAgilityPack.HtmlDocument doc2 = new HtmlAgilityPack.HtmlDocument(); var client2 = new WebClient(); client2.Encoding = Encoding.UTF8; client2.Headers.Add("user-agent", Guid.NewGuid().ToString()); var html2 = client2.DownloadString(newUrl); doc2.LoadHtml(html2); Console.WriteLine(); Console.WriteLine("---------------Sözler---------------"); Console.WriteLine(); HtmlNode sözler0 = doc2.DocumentNode.SelectSingleNode("//*[@id='site']/div/div/div/main/div/div/div[3]/div[1]/div/div/div/div[2]/div[1]/span/p/span"); Console.WriteLine(sözler0.InnerHtml); HtmlNode sözler = doc2.DocumentNode.SelectSingleNode("//*[@id='site']/div/div/div/main/div/div/div[3]/div[1]/div/div/div/div[2]/div[1]/span/div/p/span"); Console.WriteLine(sözler.InnerHtml);
çok teşekkür ederim gerçekten oldu herşey ama bi sıkıntı var bazen bazı harfler ? olarak görünüyor türkçe karakterler değil normal karakterlerde ama bazı yerlerde oluyo
 
Tutti mi chiedono perché ho imparato questa lingua
Süper Üye
Katılım
17 Mar 2016
Mesajlar
634
Çözümler
5
Tepki puanı
112
Ödüller
11
10 HİZMET YILI
çok teşekkür ederim gerçekten oldu herşey ama bi sıkıntı var bazen bazı harfler ? olarak görünüyor türkçe karakterler değil normal karakterlerde ama bazı yerlerde oluyo
Ornek fotoğraf lazım mesela hangi şarkıda felan anca oyle yardımcı olabilirim
 
Tutti mi chiedono perché ho imparato questa lingua
Süper Üye
Katılım
17 Mar 2016
Mesajlar
634
Çözümler
5
Tepki puanı
112
Ödüller
11
10 HİZMET YILI
kanka yada boşver her şeyi sen yapıcan :D orasınada ben uğraşayım genede yardımın için teşekkürler
Kanka dc versene ilerde başka soruların olursa ordan yazarsın hem aklımda başka bisey var onu konuşuruz burda mesaj kısıtlaması oluyor
 
Üye
Katılım
24 May 2021
Mesajlar
11
Tepki puanı
2
5 HİZMET YILI
Merhaba, çok doğru bir çözüm değil ama iş görür.

C#:
string cikti = "<a class=\"title\" href=\"/lyrics/Rota-6/X-Ray\"><span>X-Ray</span></a>";
int firstIndex = cikti.IndexOf("href=\"") + "href=\"".Length;
int lastIndex = cikti.IndexOf("\"", firstIndex-1);
string result = cikti.Substring(firstIndex, lastIndex-2);
Console.Write(cikti + "\n" + result + "\n");
98ajzSh.png
 
Uzman Üye
Katılım
22 May 2018
Mesajlar
191
Tepki puanı
25
Ödüller
8
8 HİZMET YILI
Merhaba, çok doğru bir çözüm değil ama iş görür.

C#:
string cikti = "<a class=\"title\" href=\"/lyrics/Rota-6/X-Ray\"><span>X-Ray</span></a>";
int firstIndex = cikti.IndexOf("href=\"") + "href=\"".Length;
int lastIndex = cikti.IndexOf("\"", firstIndex-1);
string result = cikti.Substring(firstIndex, lastIndex-2);
Console.Write(cikti + "\n" + result + "\n");
98ajzSh.png
yardımın için teşekkür ederim ama bu kod sadece bir şarkı sözü için başka bir şarkı sözünü çıkaramaz hep aynı olur genede teşekkürler cevabın için
 
Üye
Katılım
24 May 2021
Mesajlar
11
Tepki puanı
2
5 HİZMET YILI
yardımın için teşekkür ederim ama bu kod sadece bir şarkı sözü için başka bir şarkı sözünü çıkaramaz hep aynı olur genede teşekkürler cevabın için
href="buranın içindeki kısmı ayırıyor" başka şarkı sözünde de çalışıyor yani arayı değiştirip denedim :)
cevabımı değerlendirdiğin için teşekkür ederim :)
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst