当前位置: 首页 > news >正文

java爬虫抓取网页搜索数据

首先访问这个使用必应并搜索想要的内容
https://www.bing.com/images/search?q=[把这里替换成想要的搜索内容]
按下f12来查看源码
https://www.bing.com/images/search?q=
我们可以找到a.iusc这个元素可以获取图片的源地址
注意,直接选中网页上的图片只能看到它的缩略图在哪。
由此可以编写出来爬虫脚本来下载指定搜索内容前几张

public static void downloadImage(String imgUrl, String fileName) throws Exception {
        URL url = new URL(imgUrl);
        URLConnection con = url.openConnection();
        con.setConnectTimeout(10 * 1000);
        InputStream is = con.getInputStream();
        byte[] bs = new byte[1024];
        int len;
        OutputStream os = new FileOutputStream(fileName);
        while ((len = is.read(bs)) != -1) {
            os.write(bs, 0, len);
        }
        os.close();
        is.close();
    }

    public static void getImage(String keyword) {
        String searchUrl = "https://www.bing.com/images/search?q=" + keyword;
        try {
            Document doc = Jsoup.connect(searchUrl).get();
            Elements imgElements = doc.select("a.iusc"); // 获取存有原图链接的 a 标签
            int count = 0;

            for (Element imgElement : imgElements) {
                String mData = imgElement.attr("m"); // 获取 m 属性中的 JSON 数据

                // 使用正则解析 murl(高清图片 URL)
                Pattern pattern = Pattern.compile("\"murl\":\"(.*?)\"");
                Matcher matcher = pattern.matcher(mData);
                if (matcher.find()) {
                    String imgUrl = matcher.group(1);
                    System.out.println("高清图片URL:" + imgUrl);

                    // 下载图片
                    downloadImage(imgUrl, "image" + count + ".jpg");
                    count++;
                    if (count >= 5) break; // 只下载前 5 张
                }
            }
        } catch (Exception e) {
            System.out.println("获取图片出错:" + e.getMessage());
        }
    }
http://www.dtcms.com/a/24000.html

相关文章:

  • 蓝桥杯 Java B 组 之树的基础(二叉树遍历)
  • Linux Socket编程:TCP开发指南
  • MoE硬件部署
  • 动态规划从入坟走向入坑
  • Python 和 R机器学习(2)随机森林
  • 通信:Winform(结合C#) TCP服务端
  • 探秘 Python 枚举类型:从基础到实战的深度指南
  • uniapp Flex 布局使用记录
  • CE RED 增加网络安全 添加新网络安全类型
  • python爬虫系列课程2:如何下载Xpath Helper
  • curl 命令详细介绍
  • 负载均衡(SLB)后端实例不健康:腾讯云如何协助解决
  • 【C++设计模式 – 工厂(Factory)模式】—— 对象创建的优雅解耦方案
  • Linux面试题
  • Bom详解和Dom详解
  • 本地使用docker部署DeepSeek大模型
  • 【保姆级教程】DeepSeek R1+RAG,基于开源三件套10分钟构建本地AI知识库
  • Java全栈项目-田径运动会管理系统
  • 23种设计模式 - 责任链
  • 存储结构 分类
  • 使用Swupdate恢复模式更新嵌入式linux系统
  • 大师课程:穿越日本专业级人文风景摄影视频课程 Fstoppers - Photographing the World 6 - Japan II
  • 基于微信小程序的宠物寄养平台的设计与实现(ssm论文源码调试讲解)
  • FPGA VIVADO:axi-lite 从机和主机
  • 环境变量 PATH 与可执行文件识别机制详解
  • 数据倾斜定义以及在Spark中如何处理数据倾斜问题
  • 14. Docker 轻量级可视化工具 Portainer(的详细安装步骤+常规使用详细说明)
  • PyQt加载UI文件
  • x86平台基于Qt+opengl优化ffmpeg软解码1080P视频渲染效率
  • 【GoLang】【算法模板】2、GoLang 算法模板整理