Я пытаюсь создать приложение java, которое может обрывать информацию с веб-сайтов, и я сделал некоторые поисковые запросы и управлял очень простым скребком, но этого недостаточно. Кажется, что мой скребок не сломал некоторую информацию на этом веб-сайте, особенно в той части, где я хочу отказаться. Java Web Scraping с помощью Jsoup
1.
Elements links = htmlDocument.select("a");
for (Element link : links) {
this.links.add(link.attr("href"));
}
2.
Elements linksOnPage = htmlDocument.select("a[href]");
System.out.println("Found (" + linksOnPage.size() + ") links");
for(Element link : linksOnPage)
{
this.links.add(link.absUrl("href"));
}
Я пробовал оба кода, но я не могу найти эту ссылку в любом месте в объекте элементов. Я считаю, что те данные, которые я хочу, являются результатом поиска, поэтому, когда моя программа подключается к этому URL-адресу, эта информация исчезла. Как я могу это решить? Я хочу программу всякий раз, когда она запускается, отказываясь от результата этого поиска.
Так что мой вопрос,
1.How я лом этой ссылки на элементы моего кода в объекте? Что я делаю не так?
2.Есть ли способ выбрать эту ссылку и перейти только к этой ссылке (не все гиперссылки)?
final Document doc = Jsoup.connect("http://www.work.go.kr/empInfo/empInfoSrch/list/dtlEmpSrchList.do?pageIndex=2&pageUnit=10&len=0&tot=0&relYn=N&totalEmpCount=0&jobsCount=0&mainSubYn=N®ion=41000&lastIndex=1&siteClcd=all&firstIndex=1&pageSize=10&recordCountPerPage=10&rowNo=0&softMatchingPossibleYn=N&benefitSrchAndOr=O&keyword=CAD&charSet=EUC-KR&startPos=0&collectionName=tb_workinfo&softMatchingMinRate=+66&softMatchingMaxRate=100&empTpGbcd=1&onlyTitleSrchYn=N&onlyContentSrchYn=N&serialversionuid=3990642507954558837&resultCnt=10&sortOrderBy=DESC&sortField=DATE").userAgent(USER_AGENT).get();
try
{
Connection connection = Jsoup.connect(url).userAgent(USER_AGENT);
Document htmlDocument = connection.get();
this.htmlDocument = htmlDocument;
String qqq=htmlDocument.toString();
System.out.println(qqq);
if(connection.response().statusCode() == 200) // 200 is the HTTP OK status code
// indicating that everything is great.
{
System.out.println("\n**Visiting** Received web page at " + url);
}
if(!connection.response().contentType().contains("text/html"))
{
System.out.println("**Failure** Retrieved something other than HTML");
return false;
}
Elements linksOnPage = htmlDocument.select("a[href]");
System.out.println("Found (" + linksOnPage.size() + ") links");
for(Element link : linksOnPage)
{
this.links.add(link.absUrl("href"));
System.out.println(link.absUrl("href"));
}
return true;
}
catch(IOException ioe)
{
// We were not successful in our HTTP request
return false;
}
это весь код, который я использую для соскабливания. Этот код, я использую from this site.
Возможно, эта ссылка сгенерирована с помощью Javascript? Попробуйте это http://stackoverflow.com/documentation/jsoup/4632/parsing-javascript-generated-pages#t=201702071004321608713 – Tim
Я узнал, что в своем коде, когда я пытаюсь подключиться к веб-странице с результатами поиска, веб-страница отвечает пустым результатом, а в браузере (хром) отображается правильный результат (даже если я использую тот же url). Я распечатал текст документа, а в той части, где должен быть результат поиска, на веб-странице говорится: «Невозможно найти запрошенную страницу». Так ... может ли кто-нибудь помочь этому? – Hoon
Вы пытались установить User Agent при подключении к URL? http://stackoverflow.com/questions/10187603/useragent-in-jsoup – Tim