一:以浏览器的模式浏览网页
在用jsoup获取你所需网页的信息时,如果你重复访问网页,就会被拦截,所以你要网页以为你是以浏览器的模式进行访问的,这样就可以使你的访问不受限,抓取你所需的信息。最开始要设置一下代理商,都在Response Headers里,复制一下就可以了,首先在你的网页下按Fn+F12打开审查元素,点击Network选项,找到第一个网络,之后点击Response Headers,把下面的信息都存在.header方法中,这样就可以了,代码如下:
String Agent="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36";
String url="http://www.dianping.com/tianjin/ch10/g34032";
Document doc = Jsoup.connect(url)
.header("Cache-Control", "no-cache")
.header("Connection", "keep-alive")
.header("Content-Encoding", "gzip")
.header("Content-Language", "zh-CN")
.header("Set-Cookie", "s_ViewType=10; Domain=.dianping.com; Expires=Fri, 03-Jan-2020 01:29:01 GMT; Path=/")
.userAgent(url)
.get();
二:获取网页中的超链接并筛选
Elements links=doc.getElementsByTag("a");
for(Element link:links){
String linkhref=link.attr("href");
if(linkhref.startsWith("http://www.dianping.com/shop/")&& linkhref.length()==36){
System.out.println(linkhref);
}
用Document的getElementsByTag方法,获取a标签,之后用attr方法属性是href的超链接,下面是一种讨巧的方法观察抓取的这些超链接中你想要获取的超链接有哪些特点,和与别的超链接有哪些不同,大家可以使用正则法则来命名你想要获取的超链接格式,再进行筛选,还可以用字符串的截取等方式。