[]

c# web client kullanırken kaynak kodunun farklı gelmesi

linklerin bir kısmı farklı gözüküyoru webclient kullanınca. Html agility pack ile parse ediyorum.

firefox ile gözüken: L?I4FllP0_The Beatles_Let It Be _SM79tec7
webclient: L?I4FllP0_The Beatles_Let It Be

sondaki kısım her aramada her şarkıda aynı fakat periyodik olarak değişir diye düşünüyorum bu tarz girişimleri engellemek için manuel olarak eklemek istemedim o yüzden. Sorun nerde olabilir? referer ya da cookie düşünüyorum ben, nerden anlarım?

kaynak kodunun olduğu sayfa şu: mrtzcmp3.net

 
firefox'un gonderdigi headerlarin aynisini webclient ile gondermeyi dene, yani webclient'i firefoxmus gibi tanit sunucuya.

edit: simdi kontrol ettim ilk alt cizgi (_) karakterinden sonrasi onemli degil.
yani senin ornegindeki yerine L?I4FllP0_ yazarsan bile denedim %100 calisiyor. seo amacli koyuyorlar sanirim gerisini, birde sanirim ensondaki degeri sadece ikinci girisinde koyuyor, yani cookie tarzi birsey var ancak sarkiyi dinleyeme engel degil.
  • tonakai  (02.08.13 09:44:48 ~ 09:50:00) 
@tonakai header olarak "Mozilla/5.0" kullanıyorum. Yine aynı ama.
referer olarak mrtzcmp3.net girdim yine olmadı.

client.Headers.Add(HttpRequestHeader.Cookie, "cookies"); şu şekilde cookie eklemeye çalıştım ama böyle olmuyor sadece diye tahmin ediyorum.
  • cagdassalur  (02.08.13 09:47:23) 
karsi taraftan gelen cookie degerini alip sonra yazdigin gibi eklemen lazim. ancak cookie koymasan bile calisir gibi cunku seni her yeni kullanici gibi algilayacak ve o sondaki degerleri koymayacak linklerine.

surda anlatilmis cookie nasil alinir: msdn.microsoft.com(v=vs.95).aspx
  • tonakai  (02.08.13 09:58:06) 
"ancak cookie koymasan bile calisir gibi cunku seni her yeni kullanici gibi algilayacak ve o sondaki degerleri koymayacak linklerine."

Sorun nerde olabilir o zaman?

edit: ilk editini şimdi gördüm son kısım eksik olunca linke gittiğimde ana sayfaya yönleniyor bende.
  • cagdassalur  (02.08.13 15:15:18 ~ 15:16:11) 
evet haklisin, hmhm sanirim gene hersekilde ilk verdigin link'e gidip, cookieleri/session idsini alip sonraki http isteklerinde onu kullanman gerekiyor.
session bilgisi ve L?xxxx degeri arasinda bir baglanti var demek.

  • tonakai  (02.08.13 15:58:25) 
httprequest değil de webclient kullanıyorum. Onda nasıl ekleyebilirim cookie? stackoverflowda çok anlatmışlar ama hiç beceremedim. httprequest kullanmam daha mı iyi benim için? çünkü 1-2 adım sonra düz url'den mp3 kendi gelicek direkt link yok onda da sorun çıkabilir diye tahmin ediyorum. python'da request edip gelen response metnini *.mp3 olarak kaydedince oluyordu. c#'a iki üç gün önce başladım pek beceremiyorum o yüzden.


  • cagdassalur  (02.08.13 17:30:34) 
Selam soyle bir kod yazdim denedim calisiyor buraya kopyalayip yapistiricam, HtmlAgilityPack kullandim extra olarak o da sayfadaki ilgili linki bulmak icindi:
Uri uri = new Uri("mrtzcmp3.net");
HttpWebRequest httpRequest = WebRequest.Create(uri) as HttpWebRequest;
httpRequest.CookieContainer = new CookieContainer();
HttpWebResponse httpResponse;
httpResponse = httpRequest.GetResponse() as HttpWebResponse;

HtmlDocument document = new HtmlDocument();
document.Load(httpResponse.GetResponseStream());
HtmlNode linkNode = document.DocumentNode.SelectSingleNode("//tbody/tr/td/a");
HtmlAttribute link = linkNode.Attributes["href"];

Uri lUri = new Uri("mrtzcmp3.net"+link.Value);
HttpWebRequest secondHttpRequest = WebRequest.Create(lUri) as HttpWebRequest;
secondHttpRequest.CookieContainer = new CookieContainer();
secondHttpRequest.CookieContainer.Add(httpResponse.Cookies);
HttpWebResponse secondResponse;
secondResponse = secondHttpRequest.GetResponse() as HttpWebResponse;
StreamReader sr = new StreamReader(secondResponse.GetResponseStream());
String result = sr.ReadToEnd();
sr.Close();
  • tonakai  (05.08.13 19:27:51) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.