我正在尝试使用JSoup从目录中检索信息,它每行总共有9列,第6列专门用于登录时的占位符,当您实际登录到该站点时,该列显示“价格”。
我有以下内容:(此处未显示用户名和密码)
Document doc = null;
String url;
Response res = Jsoup.connect("https://www.prisa.cl/home/?page=iniciaSesion")
.method(Method.GET)
.timeout(10000)
.execute();
String sessionID = res.cookie("PHPSESSID");
System.out.println(sessionID);
res = Jsoup.connect("https://www.prisa.cl/home/?page=iniciaSesion")
.data("email_address", username, "password", password)
.method(Method.POST)
.timeout(10000)
.execute();
sessionID = res.cookie("PHPSESSID");
System.out.println(sessionID);
for(int page=1; page<=1; page++){
url = "https://www.prisa.cl/catalog/advanced_search_result.php"
+ "?keywords=%20&enviar=&categories_id=&manufacturers_id=&pfrom=&pto=&sort=2a&&page="+page;
doc = Jsoup.connect(url)
.cookie("PHPSESSID", sessionID)
.timeout(10000)
.get();
for(Element table : doc.select("table table table table table")){
for(Element row : table.select("tr")){
Elements tds = row.select("td");
if(tds.size() == 9){
System.out.println(tds.select("img[src]").attr("src")+";"+
tds.get(1).text()+";"+
tds.get(2).text()+";"+
tds.get(3).text()+";"+
tds.get(4).text()+";"+
tds.get(5).text()+";"+
tds.get(6).text());
} //end if
} //rows
} //tables
System.out.println("finished page: "+page);
} //pages
我认为/希望在这里发生的是:
1-我在未登录时获取PHPSESSID cookie(用于调试目的)
2-我在登录时再次获得PHPSESSID(具有不同的数据)
3-我正在为目录中的每个页面进行迭代(在上面的代码中仅使用1)并尝试在连接期间发送PHPSESSID cookie以在登录时检索数据
4-寻找具有9个TD而TR为5个表格的TR(页面布局有点混乱)
我对此非常陌生,但实际上我在Stack Overflow和JSoup文档中搜索了几天不同的方法无济于事。
我做错了什么?