#Auto check price Amazon

Đăng ký tài khoản kiếm tiền với tiếp thị liên kết tại ACCESSTRADE, MasOffer, Lazada Việt Nam

Hôm rồi có bạn nào hỏi mình code về ứng dụng #AutoCheckPrice mình không check lại được inbox nên mình post trả lời ở đây nhé!
📌 P.s: Đối với proxy free bạn cũng cần phải xem chính sách của họ, đôi khi proxy cũng không cho request liên tục.
📌 Ứng dụng mình đã chia sẻ đôi khi hoạt động sẽ vẫn bị tình trạng không lấy dữ liệu ổn định hết (do bị denie/ chưa check hết các trường hợp có thể nên mong bạn thông cảm – ở đoạn code dưới mình có ghi chú).
📌 P.s: Mong bạn phát triển được app tốt hơn chia sẻ cùng mọi người!
https://www.facebook.com/groups/polyxgo/permalink/1678227415810805/?sale_post_id=1678227415810805

//////////////////
        /// <summary>
        /// 
        /// </summary>
        /// <param name="url">Liên kết lấy dữ liệu</param>
        /// <returns>Thông tin sản phẩm YourObject</returns>
        private YourObject CheckPrice(string url)
        {
            if (string.IsNullOrEmpty(url)) return null;
            /* Đây là hàm request liên kết và trả về dữ liệu Html.
            Xem hàm bên dưới, chủ yếu nó sẽ switch qua lại UserAgent và Proxies nếu cần. Lưu ý đây chỉ là sample code, bạn nào tham khảo nên viết lại cho nó mềm dẻo hơn để lấy dữ liệu tốt hơn khi crawl.
            */
            var htmlContent = HtmlSourceByFakeBrowser(url);

            /*Amazon đôi khi delay trả về dữ liệu. Hàm này loop cho đến khi htmlContent có dữ liệu (Chắc chắn có vì url đầu vào đã là url xác định rồi).
            Lưu ý: ở đây cũng cần phải xét đến yếu tố dữ liệu trả về là nội dung của trang hiển thị denie. Do đó nên check thêm điều kiện nếu tồn tại 1 phần nội dung thể hiện trang denie thì nên đổi proxy hoặc delay crawl đến tầm 30-60 phút rồi chạy lại.
            */
            while (string.IsNullOrEmpty(htmlContent))
            {
                //Thread.Sleep(currentWaiting);//Dealy mỗi lần loop ở đây nếu muốn (việc này cần thiết vì Amazon denie request liên tục).
                htmlContent = HtmlSourceByFakeBrowser(url);
            }

            if (!string.IsNullOrEmpty(htmlContent))
            {
                //Parse lấy dữ liệu ở đây và trả về kiểu YourObject của bạn;
            }
            return null;
        }
        /* Đây là hàm request liên kết và trả về dữ liệu Html.
            Xem hàm bên dưới, chủ yếu nó sẽ switch qua lại UserAgent và Proxies nếu cần. Lưu ý đây chỉ là sample code, bạn nào tham khảo nên viết lại cho nó mềm dẻo hơn để lấy dữ liệu tốt hơn khi crawl.
        */
        private int switchBrowserUserAgent = 0;
        private string[] UserAgents = new string[] { @"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2", @"Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36" };
        private int NextProxy = 0;
        private string HtmlSourceByFakeBrowser(string url)
        {
            try
            {
                if (chkIsProxy.Checked == true)
                {
                    url = Proxy[NextProxy].Replace("{{URL}}", HttpUtility.UrlEncode(url));
                    if (NextProxy == (Proxy.Count - 1))
                    {
                        NextProxy = 0;
                    }
                    else
                    {
                        NextProxy++;
                    }
                }
                var request = (HttpWebRequest)WebRequest.Create(url);
                request.UserAgent = UserAgents[switchBrowserUserAgent];
                if (switchBrowserUserAgent == 0)
                {
                    switchBrowserUserAgent = 1;
                }
                else
                {
                    switchBrowserUserAgent = 0;
                }
                request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
                var x = request.GetResponse();
                var receiveStream = x.GetResponseStream();
                StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);
                var contentHTML = readStream.ReadToEnd();
                return contentHTML;

            }
            catch (Exception ex) { return "error"; }
        }

 

#Auto check price Amazon 5.00/5 (100.00%) 1 vote
Nếu bạn mong muốn tìm hiểu rõ hơn về chia sẻ này và những chia sẻ khác, bạn có thể kết nối với mình qua các thông tin sau:
Facebook cá nhân: https://www.facebook.com/PExpress
Blog chia sẻ cá nhân: PolygonExpress.com
Group chia sẻ ứng dụng affiliate marketing & services: MMO tools
Web dịch vụ freelance: FMMSPolygon.com
Email liên hệ mình: fmmspolygon@gmail.com
Điện thoại: 0937.798.420 - 0868.929.024 (Kim Ngọc)

Related

Leave a Reply

Your email address will not be published. Required fields are marked *