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

使用 Rust 进行程序

首先,我们需要安装必要的库。在终端中运行以下命令来安装 `scraper` 和 `reqwest` 库:

```rust
cargo install scraper reqwest
```

然后,我们可以开始编写程序。以下是一个基本的爬虫程序,用于爬取 上的图片:

```rust
use reqwest;
use scraper::{html, parse};
use std::collections::HashSet;

fn main() {
    let proxy_host = 
    let proxy_port = 

    // 创建一个设置
    let proxy = reqwest::ProxyServer::new(proxy_host, proxy_port).unwrap();

    // 创建一个 HashSet 来存储我们已经访问过的 URL
    let mut visited_urls = HashSet::new();

    // 获取网页 HTML
    let mut response = proxy.get("https://www.10jqka.com.cn/").unwrap();
    response.set_proxy(proxy_host, proxy_port);

    let html = response.text().unwrap();

    // 解析 HTML 并提取图片 URL
    let urls = html
        .parse()
        .unwrap()
        .select(|node| node.is_text_node() && node.as_str().contains("src"))
        .map(|node| node.as_str().split(" ").nth(1).unwrap())
        .collect::<HashSet<String>>();

    // 访问每个 URL 并提取图片
    for url in urls {
        if !visited_urls.contains(url) {
            visited_urls.insert(url);

            // 下载图片
            let mut response = proxy.get(url).unwrap();
            response.set_proxy(proxy_host, proxy_port);

            let file = reqwest::cookies::CookieJar::new();
            let mut file = file.load("cookies.txt").unwrap();
            response.set_cookies(file);

            let body = response.text().unwrap();
            let mut file = File::create("image.jpg").unwrap();
            file.write_all(body.as_bytes()).unwrap();
        }
    }
}
```

这个程序首先创建了一个设置,然后使用 `reqwest` 库向目标网站发送请求并获取 HTML。

相关文章:

使用 Rust 进行程序

首先&#xff0c;我们需要安装必要的库。在终端中运行以下命令来安装 scraper 和 reqwest 库&#xff1a; rust cargo install scraper reqwest 然后&#xff0c;我们可以开始编写程序。以下是一个基本的爬虫程序&#xff0c;用于爬取 上的图片&#xff1a; rust use reqwe…...

第10章 增长和扩展你的 Micro SaaS 应用程序

接下来,我们进入真正增长 Micro SaaS 应用用户群和订阅收入的激动人心的话题。 即使在增长阶段,你也不能忽视客户满意度,确保你与时俱进,在路线图上添加你承诺的功能,然后通过 SaaS 营销吸引更多用户。 也就是说,让我们来看看增长您的 Micro SaaS 应用程序的关键战略要…...

第八章《搞懂算法:逻辑回归是怎么回事》笔记

8.1 如何理解逻辑回归 逻辑回归根据给定的自变量数据集来估计事件的发生概率&#xff0c;由于结果是一个概率&#xff0c;因此因变量的范围在 0 和 1 之间。 逻辑回归的与线性回归一样&#xff0c;也是以线性函数为基础的&#xff1b;而与线性回归不同的是&#xff0c;逻辑回…...

【WinForm详细教程八】WinForm中的TreeView控件

文章目录 TreeView 基本的知识属性方法事件 TreeView 案例演示案例一&#xff1a;案例二&#xff1a; TreeView 控件 用于展示分层数据&#xff0c;它以树形结构展示信息&#xff0c;每个节点可以有一个或多个子节点。TreeView 控件允许用户以可展开和可折叠的形式查看复杂的层…...

〔003〕虚幻 UE5 基础教程和蓝图入门

✨ 目录 &#x1f388; 新建项目&#x1f388; 快捷操作&#x1f388; 镜头移动速度&#x1f388; 新建蓝图关卡&#x1f388; 打印字符串&#x1f388; 蓝图的快捷键&#x1f388; 场景中放置物体&#x1f388; 通过蓝图改变物体位置&#x1f388; 展现物体运动轨迹&#x1f3…...

如何像优秀测试人员那样思考?

优秀测试和普通测试之间的差别在于测试人员如何思考&#xff1a;测试人员的测试设计选择&#xff0c;解释所观察到的能力&#xff0c;以及非常令人信服地分析描述这些现象的能力。 然而&#xff0c;在实际工作中&#xff0c;我们更多的看到了测试人员在电脑前点点点&#xff0…...

NOIP2023模拟13联测34 A. origenNOIP2023模拟13联测34 A. origen

NOIP2023模拟13联测34 A. origen 文章目录 NOIP2023模拟13联测34 A. origen题目大意思路code 题目大意 给定 n n n 个整数 a 1 , a 2 , a 3 ⋯ a n a_1,a_2,a_3\cdots a_n a1​,a2​,a3​⋯an​ &#xff0c;求 ∑ i 1 n ∑ j i n ( ⊕ k i j a k ) 2 m o d 998244353 \…...

HttpClient学习(Java)

一、介绍 HttpClient 是Apache Jakarta Common 下的子项目&#xff0c;可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包&#xff0c;并且它支持 HTTP 协议最新的版本和建议。 我们可以通过这个HttpClient工具&#xff0c;在java代码中去构造和发送ht…...

信息系统项目管理师之各工具的定义及解释

数据收集技术 用于从各种渠道收集数据与信息。 数据分析技术 用于组织评估和评价数据与信息。 数据表现技术 用于显示用来传递数据和信息的图形方式或其他方法。 决策技术 用于从不同备选方案选择行动方案。 沟通技巧 用于在干系人之间传递信息。 人际关系与团队技能…...

golang的defer执行时机案例分析

package main import "fmt"func calcFunc(x int, y int) int {return x y }func main() {// defer语句的执行顺序是&#xff0c;从右到左,逆序执行deferDemo()// deferDemo1函数demo1 : deferDemo1()fmt.Println(demo1) // 0// deferDemo2函数demo2 : deferDemo2()f…...

2.HTML中常用浏览器

2.常用浏览器 2.1 什么是浏览器 浏览器是网页显示&#xff0c;运行的平台。常用的浏览器有IE&#xff0c;火狐&#xff0c;谷歌&#xff0c;Safari和Opera等 平时成为五大浏览器 2.2 浏览器内核 浏览器内核&#xff08;渲染引擎&#xff09;&#xff1a;负责读取网页内容&…...

Vue 监听store数据变化

天冷了&#xff0c;手也冷了&#xff0c;于学问于个人成长不能因为冷而荒废。毕业这么多年&#xff0c;只能感慨。这样努力的工作只是解决了温保问题&#xff0c;何时才能任性的过一回说走就走的自由生活&#xff1f; 大抵这样的梦想也就只能停留在梦里与期待中吧&#xff0c;与…...

智能交通和自动驾驶技术

一、定义 智能交通和自动驾驶技术是指利用先进的信息技术和人工智能技术&#xff0c;实现交通系统的智能化和自动化。智能交通和自动驾驶技术不仅可以提高交通系统的效率和安全性&#xff0c;还可以改善人们的出行体验&#xff0c;促进城市可持续发展。 智能交通和自动驾驶技…...

CentOS7安装部署StarRocks

文章目录 CentOS7安装部署StarRocks一、前言1.简介2.环境 二、正文1.StarRocks基础1&#xff09;架构图2&#xff09;通讯端口 2.部署服务器3.安装基础环境1&#xff09;安装JDK 112&#xff09;修改机器名3&#xff09;安装GCC4&#xff09;关闭交换分区&#xff08;swap&…...

树形Dp 2925. 在树上执行操作以后得到的最大分数

2925. 在树上执行操作以后得到的最大分数 两次DFS class Solution { public:// 节点状态有两种&#xff0c;选和不选&#xff0c;// dp(u, fa, 0) 不选u 节点&#xff0c;其他节点都可以选&#xff0c;值为以u为根的子树的所有节点的和- 根节点的值。// dp(u, fa, 1) 选u节点&…...

选择企业云盘?品牌推荐和评价解析

企业云盘是如今热门的企业协作工具&#xff0c;为企业提供了文件存储、文件共享服务。市面上的企业云盘千千万&#xff0c;到底哪个企业云盘好用&#xff1f;哪些品牌值得信赖呢&#xff1f; 好用的企业云盘&#xff0c;不能不提&#xff0c;Zoho Workdrive企业云盘为企业提供…...

redis: 记录一次线上redis内存占用过大问题解决过程

引言 记录一次线上redis占用过大的排查过程&#xff0c;供后续参考 问题背景 测试同事突然反馈测试环境的web系统无法登陆&#xff0c;同时发现其他子系统也存在各类使用问题 排查过程 1、因为首先反馈的是测试环境系统无法登陆&#xff0c;于是首先去查看了登陆功能的报错…...

数据资产、数字资产、数据资源及数据资产入表

数据要素 《中共中央关于坚持和完善中国特色社会主义制度推进国家治理体系和治理能力现代化若干重大的决议》&#xff08;2019&#xff09; 首次将数据列为生产要素 《关于构建更加完善的要素市场化配置体制机制的意见》&#xff08;2020.3&#xff09; 数据成为土地、劳动力、…...

Docker之Centos安装

介绍 Docker官方建议在Ubuntu中安装&#xff0c;因为Docker是基于Ubuntu发布的&#xff0c; 而且一般Docker出现的问题Ubuntu是最先更新或者打补丁的。 在很多版本的CentOS中是不支持更新最新的一些补丁包的。由于我们学习的环境都使用的是CentOS&#xff0c;因此这里我们将Do…...

SQL注入漏洞:CMS布尔盲注python脚本编写

SQL注入漏洞:CMS布尔盲注python脚本编写 文章目录 SQL注入漏洞:CMS布尔盲注python脚本编写库名爆破爆破表名用户名密码爆破 库名爆破 import requests #库名 database"" x0 while requests.get(urlf"http://10.9.47.77/cms/show.php?id33%20and%20length(data…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架&#xff0c;专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用&#xff0c;其中包含三个使用通用基本模板的页面。在此…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...

elementUI点击浏览table所选行数据查看文档

项目场景&#xff1a; table按照要求特定的数据变成按钮可以点击 解决方案&#xff1a; <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...

前端高频面试题2:浏览器/计算机网络

本专栏相关链接 前端高频面试题1&#xff1a;HTML/CSS 前端高频面试题2&#xff1a;浏览器/计算机网络 前端高频面试题3&#xff1a;JavaScript 1.什么是强缓存、协商缓存&#xff1f; 强缓存&#xff1a; 当浏览器请求资源时&#xff0c;首先检查本地缓存是否命中。如果命…...