上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

Java网络爬虫——jsoup快速上手,爬取京东数据。同时解决‘京东安全’防爬问题

guduadmin251月前

文章目录

    • 介绍
    • jsoup使用
      • 1.解析url,获取前端代码
      • 2.解决京东安全界面跳转
      • 3.获取每一组的数据
      • 4.获取商品数据的具体信息
      • 4.最终代码

        介绍

        网络爬虫,就是在浏览器上,代替人类爬取数据,Java网络爬虫就是通过Java编写爬虫代码,代替人类从网络上爬取信息数据。程序员通过设定既定的规则,让程序代替我们从网络上获取海量我们需要的数据,比如图片,企业信息等。爬虫的关键是对于网页信息的解析。

        什么是jsoup:

        jsoup是一个用于处理现实世界HTML的Java库。它提供了一个非常方便的API,用于获取URL以及提取和操作数据,使用最好的HTML5 DOM方法和CSS选择器

        jsoup使用

        • 连接url,爬取网页代码(html代码)
        • 解析网页代码,获取需要部分的数据

          我们以解析京东网页,红框数据为例

          Java网络爬虫——jsoup快速上手,爬取京东数据。同时解决‘京东安全’防爬问题,在这里插入图片描述,第1张

          1.解析url,获取前端代码

          package com.xhf;
          import org.jsoup.Jsoup;
          import org.jsoup.nodes.Document;
          import java.io.IOException;
          import java.net.URL;
          public class JsoupTest {
              static String url = "https://search.jd.com/Search?keyword=%E9%A4%90%E5%B7%BE%E7%BA%B8";
              public static void main(String[] args) throws IOException {
                  // 解析网页, document就代表网页界面
                  Document document = Jsoup.parse(new URL(url), 5000);
                  // 打印获取前端代码
                  System.out.println(document);
              }
          }
          

          2.解决京东安全界面跳转

          直接通过url访问,经常遇到弹出京东安全的界面

          
           
           
           
           
           
          京东安全 
          
          
          
          
           
            
          

          这算是对于爬取数据的一种反制措施。直接通过url请求,服务器会认为客户端没有登录,因此会跳出京东安全的登陆界面,让他们登录。以前可以通过添加header解决,现在得添加cookie了。获取cookie的方式如下

          Java网络爬虫——jsoup快速上手,爬取京东数据。同时解决‘京东安全’防爬问题,在这里插入图片描述,第2张

          Java网络爬虫——jsoup快速上手,爬取京东数据。同时解决‘京东安全’防爬问题,在这里插入图片描述,第3张

          1. 空白处右击鼠标
          2. 选择检查
          3. 右边栏中选择网络。如果没有,点击加号(更多工具),选择网络
          4. 找到Search大头的请求,如果没有,刷新重发请求
          5. 选中请求,查看标头
          6. 选择cookies,找到以thor为key的cookie

          以下,就是修正后的代码

          package com.xhf;
          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.URL;
          import java.util.HashMap;
          import java.util.Map;
          public class JsoupTest {
              static String url = "https://search.jd.com/Search?keyword=%E9%A4%90%E5%B7%BE%E7%BA%B8";
              
              public static void main(String[] args) throws IOException {
                  // 设置cookie
                  Map cookies = new HashMap();
                  cookies.put("thor", "03F9B0325C5DCD2FCCDB435C227FD474D0B53C9143EB5DDA60599BDB9AE7A415B7CFEB4418F01DDEB8B8B9DD502D366A4E0BA2D84A0FE6CB6658061484CA95D230C7B76A36E31F4B329D2EFAC7DCD1E526F3C416CC50617276FED57FAF618892895784CB6446F6B8468A807290C12C3BA1C99DD0C0939C48C4E69681CA900EA9");
                  // 解析网页, document就代表网页界面
                  Document document = Jsoup.connect(url).cookies(cookies).get();
                  System.out.println(document);
              }
          }
          
          
          
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
          餐巾纸 - 商品搜索 - 京东