在我目前看来,对于爬虫的理解就是,在浏览器上输入一个url的时候,会发现是生成一些前端的代码界面,从而显示出来的。而爬虫就是获取这些前端界面,再进行对界面的筛选和使用。
“获取请求返回的页面信息,筛选出我们需要的数据”
参考了这份学习视频:https://www.bilibili.com/video/BV1La4y1x7Wm
所以这里用java来进行对页面的调用。
这里我使用了jsoup包,
首先是需要导入jsoup包的依赖
(它是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数)
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.11.3</version>
</dependency>
在看一些审查元素:
会发现这个就是我们要找的,div就是
再看看等下要获取的li元素
以及li下面的每一个标签
由于jd这个懒加载的问题没有解决,所以换成了另一个网站,结果还是一样的呢
package PaChong;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
public class HtmlParseUtil {
public static void main(String[] args) throws IOException {
//首先是获取网页 以京东的网页为例https://search.jd.com/Search?keyword=java
String url="http://search.dangdang.com/?key=java&act=input";
//再是需要解析网页,就需要使用jsoup,参数一个是url 一个是时间
//而这个返回的Document 就是页面对象
Document parse = Jsoup.parse(new URL(url), 30000);
//所以这里就可以根据id来获取了
Element j_goodsList = parse.getElementById("search_nature_rg");
//这里可以查看一下是否能获取到
// System.out.println(j_goodsList.html());
//然后就是获取所有的li元素,调用的是tag方法,其实很好奇,为什么这边是elements呢,可以是因为
Elements li = j_goodsList.getElementsByTag("li");
//然后再获取这些标签下的内容
for(Element elements:li){
//这里的elements就是一个个独立标签了,也就是每一个li
//比如获取图片,eq就是取第一个就行了
//为什么不能直接是类呢
String img=elements.getElementsByTag("img").eq(0).attr("src");
//String img = elements.getElementsByTag("source-data-lazy-img").eq(0).attr("src");
//然后还有是价格,而价格从代码上看就是一个类,选第一个元素,而且转换成text格式
String price = elements.getElementsByClass("price").eq(0).text();
//还有标题
String name = elements.getElementsByClass("name").eq(0).text();
//还有一些细节
String detail=elements.getElementsByClass("detail").eq(0).text();
//然后就可以输出了
System.out.println("=========================");
System.out.println(img);
System.out.println(price);
System.out.println(name);
System.out.println(detail);
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/38552.html