网络编程 —— Http使用httpClient实现页面爬虫

先去找类型的a标签 取出图片所在网址 取出https://desk.3gbizhi.com/deskMV/438.html

搭建Form界面

Http类 

public static HttpClient Client { get; }
static Http()
{HttpClientHandler handler = new HttpClientHandler();//处理消息对象//ServerCertificateCustomValidationCallback  是否开启免验证策略,有的网站不安全,//浏览器阻止你访问,需要把验证忽略掉handler.ServerCertificateCustomValidationCallback = (message, cart, chain, error) => { return true; };Client = new HttpClient(handler);//请求对象}

图片所在页面网址的正则

Regex imgHtml = new Regex(@"<a href=""(https://[a-zA-Z0-9/\.]+\.html)"" class=""[a-zA-Z0-9]* imgw"" target=""_blank"">" );
//< a href = "https://pic.3gbizhi.com/uploadmark/20231006/c54bae39ffc4a10b023fc5c7adfee803.jpg" class="arrows" target="_blank"><i class="fa fa-search-plus fa-fw"></i></a>
Regex picReg = new Regex(@"<a href=""(https://pic\.3gbizhi\.com/uploadmark/\d+/[a-zA-Z0-9]+\.(jpg|png))"" class=""arrows"" target=""_blank"">");
按钮的点击事件
string url = this.textBox1.Text;// 获取爬虫的url index_23.html
int start = int.Parse(this.textBox3.Text); //开始页数 index_1.html
int end = int.Parse(this.textBox4.Text); //结束页数 index_2.html
Regex reg = new Regex(@"index_\d+\.html$");
url = reg.Replace(url,""); //Replace =替换,把后面替换前面类型的字符串https://desk.3gbizhi.com/deskMV/
for (int i = start; i <=end; i++)
{string nowURL = $"{url}/index_{i}.html";HttpResponseMessage res = await Http.Client.GetAsync(nowURL);string data = await res.Content.ReadAsStringAsync();// 整体html字符串// 从data所有字符串匹配满足正则的字符串 返回结果是MatchCollection的数据集合MatchCollection maths = imgHtml.Matches(data);foreach (Match item in maths){ //下面需要根据html 匹配类型以下格式图片var res1 =  await Http.Client.GetAsync(picURL);string data1 = await res1.Content.ReadAsStringAsync();string picURL1 = picReg.Match(data1).Groups[1].Value;Console.WriteLine(picURL1);downLoad(picURL1);}
} 
 public async void downLoad(string url){var res =  await Http.Client.GetAsync(url);byte[] b1 = await res.Content.ReadAsByteArrayAsync();//C:\Users\Administrator\DesktopFile.WriteAllBytes(@"C:\Users\Administrator\Desktop\PP\"+Path.GetFileName(url), b1);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/19065.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

万亿应急国债项目之通信指挥类应急装备多链路聚合通信设备在应急行业中的重要作用

万亿应急国债项目的推出&#xff0c;无疑是我国在应急领域的一次重大举措。在这一宏大蓝图中&#xff0c;通信指挥类应急装备的多链路聚合通信设备显得尤为重要&#xff0c;其在应急行业中所发挥的作用&#xff0c;堪称不可或缺的关键一环。 通信指挥是应急响应中的核心环节&a…

QT C++ 读写mySQL数据库 图片 例子

在上篇文章中描述了怎样搭建读写数据库的环境。 本文更进一步&#xff0c;描述了读写mySQL数据库&#xff0c;字符、整型数字、图片。读写图片相对难点。 数据库的图片字段用BLOB&#xff0c;如果图片较大要用longblob,否则会报错。 另外&#xff0c;读写数据库都使用了短连…

图形学初识--空间变换

文章目录 前言正文矩阵和向量相乘二维变换1、缩放2、旋转3、平移4、齐次坐标下总结 三维变换1、缩放2、平移3、旋转绕X轴旋转&#xff1a;绕Z轴旋转&#xff1a;绕Y轴旋转&#xff1a; 结尾&#xff1a;喜欢的小伙伴可以点点关注赞哦 前言 前面章节补充了一下基本的线性代数中…

前端Vue小兔鲜儿电商项目实战Day02

一、Pinia快速入门 此处见&#xff1a;Vue从入门到实战Day12-CSDN博客 二、创建项目并精细化配置 1. 创建项目 2. src目录调整 ①删除一些初始化的默认文件 清空assets、components、store、views文件夹下的内容&#xff1b; ②修改剩余代码内容 router/index.js import …

华为昇腾310 ATC模型转换工具安装

参考: https://bbs.huaweicloud.com/blogs/393282?utm_source=zhihu&utm_medium=bbs-ex&utm_campaign=other&utm_content=content https://www.hiascend.com/document/detail/zh/canncommercial/601/inferapplicationdev/atctool/atctool_0004.html 1、基本工具…

js知识点之闭包

闭包 什么是闭包 闭包&#xff0c;是 JavaScript 中一个非常重要的知识点&#xff0c;也是我们前端面试中较高几率被问到的知识点之一。 打开《JavaScript 高级程序设计》和《 JavaScript 权威指南》&#xff0c;会发现里面针对闭包的解释各执一词&#xff0c;在网络上搜索关…

23种设计模式之一— — — —装饰模式详细介绍与讲解

装饰模式详细讲解 一、定义二、装饰模式结构核心思想模式角色模式的UML类图应用场景模式优点模式缺点 实例演示图示代码演示运行结果 一、定义 装饰模式&#xff08;别名&#xff1a;包装器&#xff09; 装饰模式&#xff08;Decorator Pattern&#xff09;是结构型的设计模式…

学业辅导导师:文心一言智能体详细介绍和开发

一、前言 本期题目 开发方向&#xff1a;学习成长类 解读&#xff1a; AI技术在学习成长方向的应用正日益增多&#xff0c;本期赛题需围绕该方向开发智能体包括但不限于:作文辅导助手、个性化学习助手、考试助手、各垂类教育内容专家等 二、我的智能体&#xff1a;学业辅导…

2.10 mysql设置远程访问权限

2.10 mysql设置远程访问权限 目录1. 管理员运行mysql命令窗口2. 使用 root 用户重新登录 MySQL3. 修改用户权限4. 修改mysql安装目录下的my.ini 目录 说明&#xff1a; Mysql8.0 设置远程访问权限 一、Mysql8.0 设置远程访问权限 1. 管理员运行mysql命令窗口 2. 使用 root 用…

matlab安装及破解

一、如何下载 软件下载链接&#xff0c;密码&#xff1a;98ai 本来我想自己生成一个永久百度网盘链接的&#xff0c;但是&#xff1a; 等不住了&#xff0c;所以大家就用上面的链接吧。 二、下载花絮 百度网盘下载速度比上载速度还慢&#xff0c;我给充了个会员&#xff0c…

OpenAI 文生图模型演进:DDPM、IDDPM、ADM、GLIDE、DALL-E 2、DALL-E 3

节前&#xff0c;我们星球组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、参加社招和校招面试的同学。 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 合集&#x…

WPF使用Prism实现简单订餐系统

新建wpf项目&#xff0c;nuget引入Prism.DryIoc&#xff0c;MaterialDesignThemes 引入后&#xff0c;修改App.xaml 前台引入 xmlns:prism"http://prismlibrary.com/"和prism:PrismApplication App.xaml.cs App.xaml.cs继承PrismApplication&#xff0c;重写CreateS…

在线等!3damx渲染爆内存怎么办?

在使用V-Ray进行CPU渲染时&#xff0c;复杂场景和高渲染设置可能会导致内存消耗过高&#xff0c;进而影响渲染速度&#xff0c;导致处理异常、机器停滞、应用程序崩溃等情况。 为机器配置更大的 RAM 始终是解决问题的最有效办法&#xff0c;但如果出于预算等原因无法实现&…

Lua的几个特殊用法

&#xff1a;/.的区别 详细可以参考https://zhuanlan.zhihu.com/p/651619116。最重要的不同就是传递默认参数self。 通过.调用函数&#xff0c;传递self实例 通过 &#xff1a; 调用函数&#xff0c;传递self (不需要显示的传递self参数&#xff0c;默认就会传递&#xff0c;但…

Leecode热题100--二分查找---33:搜索旋转排序矩阵

题目&#xff1a; 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 给你 旋转后 的数组 nums 和一个整数 target &#xff0c;如果 nums 中存在这个目标值 target &#xff0c;则返回它的下标&#xff0c;否则返回 -1 。 思路&#xff1a; 此处采用容易理解的两次…

端口扫描利器--nmap

目录 普通扫描 几种指定目标的方法 TCP/UDP扫描 端口服务扫描 综合扫描 普通扫描 基于端口连接并响应(真实) ​ nmap -sn 网段(0/24)-sn 几种指定目标的方法 单个IP扫描 IP范围扫描 扫描文件里的IP 扫描网段,(排除某IP) 扫描网段(排除某清单IP) TCP/UDP扫描 -sS …

linux中逻辑卷管理与扩展

逻辑卷管理与扩展 逻辑卷 作用&#xff1a; 1.整合分散的空间2.空间支持扩大 逻辑卷制作过程&#xff1a;将众多的物理卷&#xff08;PV&#xff09;组建成卷组&#xff08;VG&#xff09;&#xff0c;再从卷组中划分出逻辑卷&#xff08;LV&#xff09; 逻辑卷的逻辑思路 …

哪些公司防泄密软件最受欢迎?2024年防泄密软件排行榜 |

在数字化时代&#xff0c;数据的安全性和保密性已成为企业运营和发展的关键要素。随着技术的不断进步&#xff0c;防泄密软件逐渐成为了企业保护核心数据和知识产权的重要工具。在2024年&#xff0c;市场上涌现出了众多防泄密软件&#xff0c;它们各具特色&#xff0c;为企业的…

杨校老师课题之基于Idea的SSM实训项目案例开发之在线手机商城开发(一)【非常适合初学者】

1.前期配置 2.开发涉及技术栈和工具 2.1 技术栈 后端: SSM前端&#xff1a;Html、CSS、BootStrap(官方定义好的CSS样式)数据库: MySQL 2.2 开发环境(工具) 进行本次开发&#xff0c;需要具备如下环境: JDK a. JDK8.0/1.8 b. 注意&#xff1a; 没有JDK是无法运行IdeaIDEA a. …

Django之rest_framework(九)

一、分页-PageNumberPagination类 REST framework提供了分页的支持 官网:Pagination - Django REST framework 1.1、全局设置 # settings.py REST_FRAMEWORK = {DEFAULT_PAGINATION_CLASS: rest_framework.pagination.PageNumberPagination,PAGE_SIZE: 100 # 每页数目 }提示…