当前位置:   article > 正文

简单又实用java爬虫超快入门

java爬虫

摘要

        这是一个java爬虫入门的案例,可以简单的爬取商品的名称,价格,图片路径等。引入了两个依赖,jsoup可以直接对html解析,所采用的版本是---1.15.4。而另一个依赖lombok是简化,其作用方便后续扩展等。

        关键词:爬虫,jsoup,lombo

目录

1 程序实现

        1.1 爬取商品信息实现流程

         1.2 完整代码

2 总结


1 程序实现

        1.1 爬取商品信息实现流程

  • 爬取一个商品信息首先我们要知道,商品具体在哪个地方,通俗的来说就是网络路径,创建路径地址。如图1.1所示:
图1.1URL路径加载

  • 有了地址后,我们就需要对其进行解析,解析成---Document对象,文档的根节点,使用Jsoup.parse(生成一个URL对象(商品信息地址),解析不超过的毫秒数)。如图1.2所示:
    图1.2解析URL
  •  获得文档的根节点后 ---Document后即可获得HTML页面中的元素,使用 document.getElementById(div的id名称),如图1.3所示:
    图1.3根据ID获取元素
  • 由于我们是获取商品的图片,名称和价格,这个是在<li>列表下我们我们还需要进一步获取,方才可以获得我们需要的信息使用element.getElementByTag(需要获取的元素,包括这个元素下的元素和递归元素)如图1.3所示:
    图1.3获取li列表和他包括下的元素
  •  此时我们就可以获取,商品的图片,价格以及名称,但这里我们采用list集合存储有一定的扩展性,且图片的加载是使用懒加载,可以正常访问的速度,所用方法如3.1所示一样,不重复叙述,如图1.4所示:
    如图1.4所示:

         1.2 完整代码

  • 爬取代码方法块
    1. public List<Content> parseJD(String key) throws IOException {
    2. //1,加载url路径
    3. String url = "https://search.jd.com/Search?keyword="+key+"&enc=utf-8&wq=java&pvid=66f97edafd7e4bf48275bee26ed2abcd";
    4. //2,解析url
    5. Document document = Jsoup.parse(new URL(url), 5000);
    6. //3,获得你想要的那个元素
    7. Element element = document.getElementById("J_goodsList");
    8. //3.1,获取li下的所有内容
    9. Elements elements = element.getElementsByTag("li");
    10. //3.2list集合存储爬取的图片,价格,名称
    11. List<Content> goodsList = new ArrayList<>();
    12. for (Element li : elements) {
    13. String attr = li.getElementsByTag("img").eq(0).attr("data-lazy-img");
    14. String price = li.getElementsByClass("p-price").eq(0).text();
    15. String name = li.getElementsByClass("p-name").eq(0).text();
    16. goodsList.add(new Content(attr,price,name));
    17. }
    18. return goodsList;
    19. }
  • 实体类 采用lombok注解,节简代码
    1. @Data
    2. @NoArgsConstructor
    3. @AllArgsConstructor
    4. public class Content {
    5. private String attr;
    6. private String price;
    7. private String name;
    8. }
  • pom.xml引入Jsoup,lombok依赖以及版本
    1. <!-- https://mvnrepository.com/artifact/org.jsoup/jsoup -->
    2. <dependency>
    3. <groupId>org.jsoup</groupId>
    4. <artifactId>jsoup</artifactId>
    5. <version>1.15.4</version>
    6. </dependency>
    7. <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
    8. <dependency>
    9. <groupId>org.projectlombok</groupId>
    10. <artifactId>lombok</artifactId>
    11. <version>1.18.24</version>
    12. <scope>provided</scope>
    13. </dependency>

    2 总结

本次使用Jsoup解析网页,对网页中的标签进行一步一步解析查找,获取想要的信息,在使用实体类进行扩展,但没有实现将其以文件形式持久化保存,和没有页面进行绑定简化操作,还有很多后续的优化。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/488674
推荐阅读
相关标签
  

闽ICP备14008679号