网页qq抓取什么原理(郑州的哈()如何使用Jsoup去解析抓取数据?)
优采云 发布时间: 2021-12-29 21:18网页qq抓取什么原理(郑州的哈()如何使用Jsoup去解析抓取数据?)
最近一直在公司使用爬虫技术爬取一些网页,查询网站记录信息。我刚开始用HttpClient和jericho(这两个也很好用,可以测试一下)。但是后来我发现了Jsoup,它和Jquery很像,在搜索节点上使用的技术也差不多。所以任何使用过 Jquery 的人都可以尝试使用 Jsoup 来解析和获取数据。下面举个例子,把所有的公交信息都抓出来(我是郑州人)。
解析前需要jar包,直接下载即可。如果用maven更方便的话,只引入依赖
例如
org.jsoup
jsoup
1.7.3
好了,进入正题,我会用一个例子来证明如何连接网站,爬取,最后分析过程:
package parserhtml;
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
public class ParserCarHtml {
static String url = "http://218.28.136.21:8081/line.asp";//公交website
public static Document getHtml(String domain){
Document html = null;
try {
//与网站建立连接,并拿到页面。(注意这里?号一定要加上,这也是抓取页面的过程,如果在浏览器中没有?,不用写,这点你可以参考浏览器是怎么解析的,然后试图模 //仿,不过今年来有些人用于非法解析,所以有些网站防爬虫,但是不用怕,在Jsoup中Connection中提供了一系列,添加Cookie,和一些请求参数的方法,这点你可以把 // 浏览器中的参数以key - value的形式copy进去 ,那么你的程序将模拟一个浏览器例如:
// Jsoup.connect(url+"?xl="+domain).data("", "").cookie("", "").get(); 这里面填写的分别是浏览器中的信息,你可以鼠标右键,审查元素,然后可以找到相应信息。*/
html = Jsoup.connect(url+"?xl="+domain).get();
} catch (IOException e) {
e.printStackTrace();
}
return html;
}
public static String PaserHtml(Document html){
Elements node = html.select("a");//进行你需要的选择元素。我的这个解析网站比较简单。你可以利用Jsoup中提供的方法去获取一些需要的元素。
String html1 = node.toString();
String html2 = html1.replaceAll("\\p{Punct}", "").replaceAll("[a-zA-Z]", "").replaceAll("\\p{Digit}", "");//利用正则表达式去解析网站
return html2;
}
public static void main(String[] args) {
getHtml("904");//这里的904是我随便输入的公交车路线。
PaserHtml(getHtml("904"));
System.out.println(PaserHtml(getHtml("904")));
}
}
运行程序,输入你要查询的站点,就可以得到你要的数据,如下图: