[Hỏi] Crawl Bing bị lỗi No Results

Discussion in 'Hỏi Đáp Kỹ Thuật' started by money, Dec 20, 2019.

  1. money

    money Hương Chủ

    Trước giờ mình vẫn crawl Bing web search bình thường. Mấy ngày nay thấy tỉ lệ crawl thành công giảm còn khoảng 25% (giảm đột ngột đang từ xấp xỉ 90% xuống 25%) nên mới mò vào xem thì thấy Bing luôn trả về "There are no results".
    Lạ nữa là kể cả các keywords rất phổ biến như Nike, vnexpress ... cũng không có kết quả.
    Từ 3 ngày trước, thậm chí dùng FF/IE/Chrome search các keywords trên cũng bị như thế. Đến hôm qua thì đã bình thường trở lại với trình duyệt nhưng crawl thì vẫn lỗi.
    Ban đầu mình nghĩ là Bing đang update gì đó.
    Đến hôm qua chat với 1 người bạn thì bé đó nói có thể do Bing chuyển sang dùng http 2.0 (check header thì đúng là Bing đang dùng http 2.0)
    Mình dùng .Net. Tìm hiểu thì tụi nó nói phải là bản .Net framework 4.6.2 và Windows 10 mới hỗ trợ http 2.0.
    Vấn đề là nếu upgrade lên thì mất khá nhiều thời gian (mình đang dùng Wins 7) và cũng chưa chắc đó có phải cách để khắc phục lỗi hay không.
    Các bạn có ai đang crawl Bing không cho mình thông tin với?
     
    Tony Vu likes this.
  2. Dang

    Dang Bang Chúng

    Em crawl key "vnexpress" vẫn trả về kết quả mà anh. Em dùng Win7 .Net 4.5
     

    Attached Files:

    money likes this.
  3. Hoa Mãn Lâu

    Hoa Mãn Lâu Trưởng Môn

    win 7 e đang xài net 4.72 luôn dc mà anh, update lên ver mới cài phát là xong đâu có vấn đề gì đâu a
     
  4. money

    money Hương Chủ

    Ko phải Win 7 ko xài dc .Net 4.7 mà anh đọc tài liệu tụi nó nói phải thỏa cả 2 điều kiện là dùng Win 10 và .Net từ 4.6.2 nên chưa biết như nào.
     
  5. money

    money Hương Chủ

    Em dùng code như nào thế?
     
  6. money

    money Hương Chủ

    @Dang đây là code anh đang dùng đó giờ, mấy hôm nay mới bị lỗi:

    Code:
    public static string HarvestSearchEngineResult(string url, string proxyAddr, int timeout, string useragent)
            {
                //Fix error: The request was aborted: Could not create SSL/TLS secure channel.
                //ServicePointManager.Expect100Continue = true;
                ////ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; //For .Net 4.5
                //ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
    
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
    
                if (timeout > 0)
                {
                    request.Timeout = timeout;
                }
                //request.Method = "POST";
                //request.ContentLength = url.Length;
    
                request.UserAgent = useragent;
                request.Accept = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
                //Accept: text/html,application/xhtml+xml,application/xml
    
                WebHeaderCollection myWebHeaderCollection = request.Headers;
                myWebHeaderCollection.Add("Accept-Language: en-US,en;q=0.5");
                //
    
                if (proxyAddr != "")
                {
                    string proxy = proxyAddr;
                    string proxyAuthentication = "";
                    if (proxyAddr.IndexOf("@") > 0)
                    {
                        string[] tempArr = proxyAddr.Split('@');
                        proxyAuthentication = tempArr[0];
                        proxy = tempArr[1];
                    }
    
                    string[] proxyArray = proxy.Split(':');
                    WebProxy proxyz = new WebProxy(proxyArray[0], int.Parse(proxyArray[1]));
    
                    if (proxyAuthentication.Trim() != "")
                    {
                        string[] proxyCredentials = proxyAuthentication.Split(':');
                        proxyz.Credentials = new NetworkCredential(proxyCredentials[0], proxyCredentials[1]);
                    }
    
                    request.Proxy = proxyz;
                }
    
                WebResponse response = request.GetResponse();
                StreamReader reader = new StreamReader(response.GetResponseStream());
                string str = reader.ReadToEnd().Trim();
                reader.Close();
                response.Close();
                return str;
            }
     
  7. Dang

    Dang Bang Chúng

    Đây là đoạn test của em. Em dùng proxy cùi nên timeout của em khá lâu, do đó em tách riêng ra 1 thư viện (giống như cUrl), thư viện đó nó cũng na ná như bên dưới. Em test Bing thấy cũng ok, sao anh lại bị em cũng không biết!

    Code:
    using System;
    using System.Text;
    using System.Net;
    using System.IO;
    
    namespace testBing
    {
    
        class Program
        {
    
            static void Main(string[] args)
            {
    
                string html = string.Empty;
               
                string url = @"https://www.bing.com/search?q=vnexpress";
    
                try
                {
    
                    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
    
                    var request = (HttpWebRequest)WebRequest.Create(url);
                   
                    request.Method = "GET";
    
                    request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36";
    
                    request.AutomaticDecompression = DecompressionMethods.GZip;
    
                    request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9";
    
                    html = new System.IO.StreamReader(request.GetResponse().GetResponseStream()).ReadToEnd();
    
                }
                catch (Exception err)
                {
                }
    
                File.WriteAllText("result.html", html, Encoding.UTF8);
    
            }
    
        }
    
    }
    
     
    money likes this.
  8. money

    money Hương Chủ

    Để lát về anh chạy trên laptop xem sao. Mấy ngày nay anh bị lỗi cả khi dùng proxy lẫn IP thực.
     
  9. Dang

    Dang Bang Chúng

    Chắc trước sau gì mấy trang khác cũng chuyển sang dùng version mới. Nếu vẫn không được, anh thử kết hợp thằng libcurl.dll của curl[.]haxx[.]se xem sao anh!
     
    money likes this.
  10. money

    money Hương Chủ

    Ồ, có lẽ anh đã hiểu lí do rồi (đoán thôi chứ không chắc 100%)

    Đầu tiên là sorry anh em vì trước khi post bài anh ko kiểm tra lại cho kỹ, làm mất thời gian của mọi người.

    Thực ra bây giờ nó chỉ xảy ra lỗi trên bộ keywords anh đang crawl thôi.

    Hiện giờ các keyword linh tinh như vnexpress, nike, ... anh crawl bình thường. Riêng bộ keyword anh cần crawl cứ đưa vào là "There are no results for ..."

    Như vậy có khả năng là:

    1. Bing mới update. Và bộ keywords anh đang dùng bị nó đánh giá có vấn đề.
    2. Các ngày trước anh crawl keywords linh tinh cũng bị lỗi là do đang trong lúc nó update nên nó loạn hoặc do nó detect theo IP, proxy gì đó ... nên nó limit anh luôn.
     
  11. money

    money Hương Chủ

    lib này nuget về toàn lỗi build em ạ, anh đang dùng .Net frameword 4.5 nó không tương thích. Có lẽ dùng bản standalone tốt hơn (nuget anh thấy nó tận năm 2013 :( )
    Code em share trên kia anh chạy cũng y như code anh đang dùng.
     
    Dang likes this.
  12. Dang

    Dang Bang Chúng

    Hay là tình hình chung trên các SE anh! BaoMoi trên Google cũng bay hết kết quả.
    ----
    screen-191220-1604.png
     
    Tony Vu likes this.
  13. Hoa Mãn Lâu

    Hoa Mãn Lâu Trưởng Môn

    Đù. báo mới bị bay màu luôn cơ à, kèo nầy hơi căng à nha.
     
  14. money

    money Hương Chủ

    chắc bị đội mạnh chơi rồi kkk
     
  15. Thanh Nguyen

    Thanh Nguyen Bang Chúng

    Có lẽ gg mới update thuật toán gì đó. Site của mình bay 60% traffic search so với hôm qua. Đau {baffle}{baffle}{baffle}
     
  16. AkuVn

    AkuVn Hương Chủ

    Google Update ngày 18/12 :D Cụ thể thì chưa có thông báo hoặc do mình mải bế con ko theo dõi tin tức đc hết nhưng thông tin này xác nhận do team global chơi cùng!
     
  17. Nai

    Nai MiddleMan Staff Member

    Thường thì tình hình khi sau khi Google update của các dàn site bên em ko khác gì lúc update. Thế mới đau {cry}.
     
  18. money

    money Hương Chủ

    Em may mắn hơn gần 50% rồi còn than gì.
    Xấp xỉ 1/2 lên, 1/2 xuống, còn em thuộc số ít ko thay đổi.
     
  19. Nai

    Nai MiddleMan Staff Member

    Ý em là khi update nó tụt, mà update xong ko lên lại{confident}
     
  20. money

    money Hương Chủ

    Cập nhật: trưa nay đã crawl lại bộ keywords của mình, tỉ lệ thành công khoảng 70%
    Vậy là Bing update gì rồi. Tự nhiên làm mất 4 ngày sửa tìm hiểu rồi linh tinh :(