То, что вы сделали, должно работать нормально.Я запустил его один раз, но потом он перестал работать.
Проблема в том, что на веб-сайте есть механизм защиты от соскабливания, который блокирует вас, если вы делаете слишком много запросов на их сайте.
Что яРекомендую вам сделать это:
- добавить
userAgent()
, чтобы идентифицировать себя как скребок бота. - прочитайте их Условия предоставления услуг, чтобы проверить, разрешено ли вам просматривать их сайт,
- отправьте им электронное письмо с сообщением о своих намерениях и о том, что они в порядке и могут удалить части своего сайта.
Кстати, если вы хотите отладить то, что происходит, как яесли это просто изменить вызовы Jsoup следующим образом:
String gotten_next_date =
Jsoup.connect("https://www.vividseats.com/nba-basketball/toronto-raptors-schedule.html").get().html();
Возвращает HTML-код запрошенной страницы, который, если вы посмотрите, не имеет ничего интересного.
<!doctype html>
<html>
<head>
<meta NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<meta http-equiv="cache-control" content="max-age=0">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="refresh" content="10; url=/distil_r_captcha.html?requestId=291c6193-eb12-4e96-b1cd-23ba9a75e659&httpReferrer=%2Fnba-basketball%2Ftoronto-raptors-schedule.html">
<script type="text/javascript">
(function(window){
try {
if (typeof sessionStorage !== 'undefined'){
sessionStorage.setItem('distil_referrer', document.referrer);
}
} catch (e){}
})(window);
</script>
<script type="text/javascript" src="/vvdstsdstl.js" defer></script>
<style type="text/css">#d__fFH{position:absolute;top:-5000px;left:-5000px}#d__fF{font-family:serif;font-size:200px;visibility:hidden}#twsyxyabbqdwrxzyzxesxywvwuzbszeeacwd{display:none!important}</style>
<script>var w=window;if(w.performance||w.mozPerformance||w.msPerformance||w.webkitPerformance){var d=document;AKSB=w.AKSB||{},AKSB.q=AKSB.q||[],AKSB.mark=AKSB.mark||function(e,_){AKSB.q.push(["mark",e,_||(new Date).getTime()])},AKSB.measure=AKSB.measure||function(e,_,t){AKSB.q.push(["measure",e,_,t||(new Date).getTime()])},AKSB.done=AKSB.done||function(e){AKSB.q.push(["done",e])},AKSB.mark("firstbyte",(new Date).getTime()),AKSB.prof={custid:"632139",ustr:"",originlat:"0",clientrtt:"124",ghostip:"72.247.179.76",ipv6:false,pct:"10",clientip:"79.119.120.57",requestid:"418cf776",region:"26128",protocol:"",blver:14,akM:"b",akN:"ae",akTT:"O",akTX:"1",akTI:"418cf776",ai:"275708",ra:"false",pmgn:"",pmgi:"",pmp:"",qc:""},function(e){var _=d.createElement("script");_.async="async",_.src=e;var t=d.getElementsByTagName("script"),t=t[t.length-1];t.parentNode.insertBefore(_,t)}(("https:"===d.location.protocol?"https:":"http:")+"//ds-aksb-a.akamaihd.net/aksb.min.js")}</script>
</head>
<body>
<div id="distilIdentificationBlock">
</div>
</body>
Обновление:(из zack6849) Если вы внимательно посмотрите внутри тега head
, последний тег meta
намекает на то, что вы перенаправлены на страницу с картинкой:
<meta http-equiv="refresh" content="10; url=/distil_r_captcha.html?requestId=291c6193-eb12-4e96-b1cd-23ba9a75e659&httpReferrer=%2Fnba-basketball%2Ftoronto-raptors-schedule.html">
Если вы также ищете немного для distilIdentificationBlock
который находится в html, вы можете видеть, что это связано с блокировкой скребков.
Надеюсь, это поможет вам лучше понять, что происходит.