Em xin chào các bác, em là newbie mới vào nghề. Em muốn tham khảo mọi người về cách để tránh block khi crawl thằng YouTube, e thấy mấy thằng như findclip, clipzui thấy nó cũng clone link trực tiếp từ YouTube mà ko bị block bao giờ, có thủ thuật gì hay ko các bác? Chứ e sợ cứ ko ko chạy như thế khi số request lên thì sớm hay muộn gì nó cũng block sạch Cảm ơn mn nhiều nhiều
Tưởng gg block mới sợ chứ yt block thì thiếu gì cách đâu. Như cụ @Hoa Mãn Lâu kia cũng là 1 cách kìa. Dùng 1 tk request liên tục lại chả limit ak
Có bị chặn ip bằng captcha ko các bác, e nghĩ nếu cứ dùng 1 ip của máy chủ để đi cào thì mơ sẽ chặn, có giải pháp gì ko ạ?
Nghĩ thôi à, làm thử i, nó ko chặn đâu, Bớt nghĩ và làm thực tế vào Cào bằng tool hoặc code tự viết nhé. có thể dùng tool bên thứ 3
À mình muốn hỏi xem có kỹ thuật nào cào trực tiếp từ youtube mà không dùng api thôi? Ví dụ: lần pro chỉ mình tìm link json ẩn trong network ấy
À gì chứ yt thấy cào trực tiếp xài curl để cào thôi thím. vô tư nó ko chặn nên cứ xài curl + xử lý string là ngon
Giao diện youtube mới toàn javascript nên để crawl mình chuyển về lại giao diện cũ bằng cách thêm mã cookie: cookie("PREF", "f6=43418&hl=en-GB") dễ lấy hơn nhiều
Regex thì với mình hơi khó.Mình dùng java và thư viện jsoup mã nó kiểu như dưới đây,khi crawl mình ko thấy báo bị youtube chặn nếu crawl nhiều nên vẫn dùng cách này. Code: public NewClass() { try { Connection.Response response = getResponse("https://www.youtube.com/channel/UCfihLMEFuVwt915maUhSG7w"); if (response != null) { Document document = response.parse(); //Để lấy các selector bạn muốn thì có thể chuyển tạm giao diện về youtube loại cũ cho dễ lấy như sau https://kstranminhquang.com/huong-dan-khoi-phuc-giao-dien-youtube-cu/ System.out.println("Title: " + document.select("title").text()); System.out.println("Author Name: " + document.select("span.qualified-channel-title-text a").text()); System.out.println("..................."); } } catch (IOException ex) { Logger.getLogger(NewClass.class.getName()).log(Level.SEVERE, null, ex); } } public Connection.Response getResponse(String url) throws IOException { try { return Jsoup.connect(url).cookie("PREF", "f6=43418&hl=en-GB") .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1") .followRedirects(false) .ignoreContentType(true) .ignoreHttpErrors(true).timeout(6000).execute(); } catch (IOException ex) { } return null; }
parse text mình chưa thấy thằng nào nhanh gọn bằng regx của PHP. Tiếc PHP ko có multi thread thôi. Khắc phục bằng cách chạy nhiều instance là ok.