java使用jvppeteer爬取网页中某个接口的数据

一、引入依赖

<dependency>
   <groupId>io.github.fanyong920</groupId>
   <artifactId>jvppeteer</artifactId>
   <version>1.1.3</version>
</dependency>

二、模拟浏览器行为访问页面

Browser browser = Puppeteer.launch(false);
        Page page = browser.newPage();
        page.on("response", new EventHandler<Response>() {
            @Override
            public void onEvent(Response o) {
                try {
                    //需要监听的接口
if(o.url().equals("https://www.toolsunited.com/App/EN/TuMenu/GetJsonResultList")){
                        JSONObject jsonObject = JSONObject.parseObject(o.text());
                        JSONArray resultList = jsonObject.getJSONArray("ResultList");
                        for (int i = 0; i < resultList.size(); i++) {
                            JSONObject object = resultList.getJSONObject(i);
                            TToolEntity tToolEntity = new TToolEntity();
                            tToolEntity.setCompanyCode(object.getString("CompanyCode"));
                            tToolEntity.setDeliveryState(object.getString("DeliveryState"));
                            tToolEntity.setToolId(object.getString("ID"));
                            tToolEntity.setDefaultImage(object.getString("DefaultImage"));
                            tToolEntity.setLabel(object.getString("Label"));
                            tToolEntity.setIdnr(object.getString("IDNR"));
                            tToolEntity.setClassLabel(object.getString("ClassLabel"));
                            tToolEntity.setResultSpecificValues(object.getJSONArray("resultSpecificValues").toString());
                            tToolDao.insert(tToolEntity);
                        }
                    }
                }catch (Exception e){
                    e.printStackTrace();
                }
                /*System.out.println("hahah");
                System.out.println(o.url());*/
            }
        });
        //访问的url
        page.goTo(url);
        browser.close();

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用Jsoup爬取分页数据的步骤如下: 1. 定义要爬取的网页地址和需要爬取的内容。 2. 使用Jsoup连接网页,获取网页内容。 3. 使用Jsoup解析网页内容,提取需要的数据。 4. 如果网页存在多页数据使用循环遍历所有网页,重复步骤2和步骤3。 5. 将提取的数据保存到本地或数据。 下面是一个示例代码,演示如何使用Jsoup爬取分页数据: ```java import java.io.IOException; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; public class PageCrawler { public static void main(String[] args) throws IOException { // 定义要爬取的网页地址和需要爬取的内容 String url = "https://example.com/page/1"; String cssSelector = ".list-item"; // 使用Jsoup连接网页,获取网页内容 Document doc = Jsoup.connect(url).get(); // 使用Jsoup解析网页内容,提取需要的数据 Elements items = doc.select(cssSelector); for (Element item : items) { // 处理每个数据项 String title = item.select(".title").text(); String description = item.select(".description").text(); System.out.println(title); System.out.println(description); System.out.println("------------"); } // 如果网页存在多页数据使用循环遍历所有网页 for (int i = 2; i <= 10; i++) { String nextUrl = "https://example.com/page/" + i; doc = Jsoup.connect(nextUrl).get(); items = doc.select(cssSelector); for (Element item : items) { // 处理每个数据项 String title = item.select(".title").text(); String description = item.select(".description").text(); System.out.println(title); System.out.println(description); System.out.println("------------"); } } // 将提取的数据保存到本地或数据 // ... } } ``` 在示例代码,我们首先定义了要爬取的网页地址和需要爬取的内容。 然后,我们使用Jsoup连接网页,获取网页内容,并使用Jsoup解析网页内容,提取需要的数据。 如果网页存在多页数据,我们使用循环遍历所有网页,重复步骤2和步骤3。 最后,我们可以将提取的数据保存到本地或数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值