Mình đang muốn làm 1 chương trình winform bằng C#, paste đường link trang nhaccuatui.com vào textbox và lấy được nội dung như tên bài hát, người trình bày, người đăng, số lượt nghe trong Top New để cho vào database nhưng chưa rõ lắm về crawler. Bạn nào có chương trình demo thử cho mình tham khảo được không?
Đây là đoạn code mình dùng để lấy thông tin về bài hát như người trình bày, người đăng, số lượt nghe Mã: var res = from item in xdoc.Descendants(xmlns + "div") where item.Attribute("class") != null && item.Attribute("class").Value == "summary-info" && item.Element(xmlns + "a") != null //select item; select new { TrinhBay = item.Elements(xmlns + "a").ElementAt(0).Value, NguoiDang = item.Elements(xmlns + "a").ElementAt(1).Value, LuotNghe = item.Elements(xmlns + "span").ElementAt(4).Value, ThongSo = item.Elements(xmlns + "span").ElementAt(6).Value }; Nhưng mỗi lần chạy đều báo lỗi "Specified argument was out of the range of valid values. Parameter name: index" mặc dù sau đó vào db vẫn thấy dữ liệu đã được thêm vào. Vậy làm sao để giải quyết được?
bạn có chắc là đoạn code này phát sinh lỗi trên ko?? Chỗ này nhìn đi nhìn lại chỉ lọc html thôi, vả lại cũng ko thấy cái param index đâu cả
Lỗi trên mình đã sửa được rồi. Tuy nhiên giờ mình muốn lấy cả link download bài hát mà trang này lại yêu cầu đăng nhập thì làm sao nhỉ?
Ko biết bên C# thế nào chứ mình thường crawl bên obj-C thế này: viết lớp phân tích XML theo các node rồi theo cái đó mà lọc thông tin mình cần thôi.
Nhưng cái chính mình đang muốn hỏi là lấy được link download bài hát thì phải log in, cái này đâu có sẵn mà bóc tách được.