【发布时间】:2019-04-28 16:06:35
【问题描述】:
很奇怪,我得到了前 12 个左右链接所需的结果,然后它每次都在同一个链接 (AAA 090) 上崩溃。我不确定链接之间有什么区别。
import org.jsoup.*;
import org.jsoup.helper.*;
import org.jsoup.nodes.*;
import org.jsoup.select.*;
import org.w3c.dom.Document;
import java.io.*; // Only needed if scraping a local File.
public class Scraper {
public Scraper() {
org.jsoup.nodes.Document page = null;
org.jsoup.nodes.Document prefix = null;
org.jsoup.nodes.Document course = null;
org.jsoup.nodes.Document cls = null;
try {
page = Jsoup.connect("https://erpdnssb.cccs.edu/PRODCCCS/ccns_pub_controller.p_command_processor?pi_course_status=A&pi_term_code=201920&pi_search_type=SB_PREFIX").get();
// get the page title
String title = page.title();
System.out.println("title: " + title);
// get all links in page
Elements links = page.select("a[href]");
for (Element link : links) {
if(!link.text().equalsIgnoreCase("HELP")&&!link.text().equalsIgnoreCase("Exit"))
{
prefix = Jsoup.connect("https://erpdnssb.cccs.edu/PRODCCCS/" + link.attr("href")).get();
Elements links2 = prefix.select("a[href]");
for (Element link2 : links2) {
if(link2.text().matches("[A-Z]{3}"))
{
course = Jsoup.connect("https://erpdnssb.cccs.edu/PRODCCCS/" + link2.attr("href")).get();
Elements links3 = course.select("a[href]");
for (Element link3 : links3) {
if(link3.text().matches("[A-Z]{3} [0-9]{3}"))
{
cls = Jsoup.connect("https://erpdnssb.cccs.edu/PRODCCCS/" + link3.attr("href")).get();
Elements links4 = cls.getAllElements();
//Elements courseNum = link4.select("body > div.pagebodydiv > table:nth-child(4) > tbody > tr:nth-child(1)");
System.out.println("\nhref = " + link3.attr("href") + "\n" + cls.text() + "\n");
System.out.println("link: " + cls.tagName());
System.out.println("Course Number: " + link3.data().toString());
}
}
}
}
}
}
}catch (IOException ioe) {
ioe.printStackTrace();
}
}
public static void main (String args[]) {
new Scraper();
}
}
org.jsoup.HttpStatusException:获取 URL 的 HTTP 错误。状态=400,>URL=https://erpdnssb.cccs.edu/PRODCCCS/ccns_pub_controller.p_command_processor?>pi_search_type=SB_COURSE&_subj_code=AAA&pi_crse_numb=090&pi_archive_date=&pi_co>urse_status=A&pi_term_code=201920 at >org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:776 )at >org .jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:722) 在 >org.jsoup.helper.HttpConnection.execute(HttpConnection.java:306) 在 >org.jsoup.helper.HttpConnection.get(HttpConnection.java :295) 在 Scraper.(Scraper.java:42) 在 Scraper.main(Scraper.java:64)"
【问题讨论】:
-
我已经复制粘贴了您的原始代码,并获得了所需的输出。您可以使用已设置的 UserAgent 重试吗,即
String userAgent ="Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko";Jsoup.connect(someUrl).userAgent(userAgent).get();?
标签: jsoup