提取网页源码中的css、js、img常用正则表达式

js如何用正则获取a标签的内容 <scripttype="text/javascript"> functionpp(){ varre=/<a[^>]*href=['"]([^"]*)['"][^>]*>(.*?)<\/a>/g; varstr=document.getElementById("txt").value; vararr=[]; while(re.e... 阅读详情

公共正则表达式

(1)提取源码中href

/href=[\s]{0,1}\"(.+?)\"/gm

(2)提取网页源码中的src 或data-src

/src=[\s]{0,1}\"(.+?)\"/gm

/data-src=[\s]{0,1}\"(.+?)\"/gm

 

1、提取页面的中包含.css后缀的link标签,再结合href正则,可以提取

/<link[\s]+\w+[^>]+\.css[\s]{0,1}"[\s]{0,1}>/gm

/href=[\s]{0,1}\"(.+?)\"/gm

2、提取页面的中包含.js后缀的script标签,再结合src正则,可以提取

/<script[\s]+\w+[^>]+\.js[\s]{0,1}"[\s]{0,1}>/gm

/src=[\s]{0,1}\"(.+?)\"/gm

3、提取页面的img标签,再结合src、data-src正则,可以提取

/<img[\s]+\w+[^>]+>/gm

/src=[\s]{0,1}\"(.+?)\"/gm

/data-src=[\s]{0,1}\"(.+?)\"/gm

4、提取页面link标签,此操作包含提取css样式文件及其他文件(如favicon.ico、.svg等)

/<link[\s]+\w+[^>]+>/gm    

/href=([\w|.|/]+)[\s]{0,1}/gm     #包括favicon.ico、svg

/href=[\s]{0,1}\"(.+?)\"/gm      # 站外链接(包括css)

 

注意:提取后的链接要进行去重

其他参考地址:

https://regex101.com/    

https://wenku.baidu.com/view/ee015cf8941ea76e58fa04fd.html?sxts=1575431073475

 

Python 爬虫进阶技巧:矢量图网页元素数据提取 在现代前端工程化与页面轻量化设计趋势下,SVG 矢量图已成为网页承载文本数据、图标数据、坐标数据、表单映射数据的核心载体之一。 阅读详情

相关推荐

深入解析Vortex GPGPU cache设计(2),关于cache_bank

本文分析了Vortex处理器的cache_bank模块设计,作为cache系列的第二部分。文章详细阐述了cache_bank的基本结构,包括地址位分配和默认配置参数。重点解析了cache的5种操作及其优先级。文章详细介绍了二级流水线设计,包括TAG/DATARAM的读写操作时序。

weixin_55313207的博客 1170

正则表达式中的特殊字符一览

<br />正则表达式中的特殊字符一览 <br /> <br />〓简介〓<br />字符意义:对于字符,通常表示按字面意义,指出接着的字符为特殊字符,不作解释。 <br />例如:/b/匹配字符'b',通过在b 前面加一个反斜杠,也就是/b/,则该字符变成特殊字符,表示匹配一个单词的分界线。或者:对于几个字符,通常说明是特殊的,指出紧接着的字符不是特殊的,而应该按字面解释。例如:*是一个特殊字符,匹配任意个字符(包括0个字符);例如:/a*/意味匹配0个或多个a。为了匹配字面上的*,在a前面加一个反斜杠;

yingjiell的专栏 4144

STM32与SD卡SPI接口硬件设计:从原理图到调试的完整指南

SPI(串行外设接口)作为一种广泛应用的同步串行通信协议,以其接线简单、驱动成熟的特点,成为连接微控制器与各类外设的经典方案。其工作原理基于主从架构,通过时钟、数据线和片选信号实现全双工通信,在嵌入式系统中具有极高的技术价值,常用于连接传感器、存储设备和显示模块等。在数据存储场景中,SD卡凭借其大容量和便携性成为首选,而通过SPI模式驱动SD卡,则平衡了性能与设计复杂度。本文聚焦于使用Altium Designer进行硬件设计的工程实践,详细解析了STM32微控制器与SD卡通过SPI通信时,电源管理、上拉电

weixin_34101784的博客 555

JS正则表达式取URL

使用js正则表达式精确匹配html标签中的URL

zhujiale159的博客 491

MFC界面库BCGControlBar v32.0 - 对话框、仪表盘控件升级

亲爱的BCGSoft用户,我们非常高兴地宣布BCGControlBar Professional for MFC和BCGSuite for MFCv32.0正式发布!新版本支持Windows 11、增强功能区简化模式、改进控件外观等,以及其他新功能和改进。需要最新版的可以点击这里【BCG下载】 BCGControlBar Pro for MFC v32.0正式版下载 对话框和表单 1. 添加了一个新的全局标志globalData.m_bAutoPrepareComboListStyles:如果您希望.

需要界面开发、IDE工具研发中文教程资料的小伙伴,记得私信我~ 1148

MATLAB新手必看:Stewart平台运动学逆解从入门到实战(附完整代码)

本文详细介绍了如何使用MATLAB实现Stewart平台的运动学逆解,从基础原理到完整代码实现,涵盖并联机器人的数学建模、MATLAB编程和Simulink集成。通过实战案例和可视化分析,帮助新手快速掌握Stewart平台的运动学逆解技术,适用于机器人学和控制理论领域的研究与应用。

dream的博客 551

通用正则, 抓取a标签href属性

import re # url通用匹配 url_regex = re.compile('&lt;a[^&gt;]+href=["\'](.*?)["\']', re.IGNORECASE) # test url_str = "&lt;a type='akfdf' href='http://www.itmeng.top' xxxx&gt;hahah&lt;/a&gt;" result = url_r...

itmeng 7317

实战拆解:RAG vs Agent在金融风控中的性能对比

2024年上半年我帮某华东地区城商行做零售交易反欺诈系统升级时,技术团队曾发生过一次激烈争论:一派认为应该优先上RAG(检索增强生成)方案,成本低、落地快、合规性好;另一派坚持要上Agent(智能体)方案,推理能力强、能应对复杂新型欺诈。最终我们做了完整的AB测试,结论是两者没有绝对的优劣,只有场景适配的差异:RAG适合高并发、低时延的实时风控场景,Agent适合低并发、高准确率要求的事后核查/大额审批场景,两者结合的 hybrid 方案能覆盖95%以上的风控需求。本文我会结合真实项目的测试数据,从核心概念

AI天才研究院 252

正则表达式抓取网页资源

分享一个工具类,用户抓取网页上的图片、js、css等路径 传入 package lab2; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; /**  *      * 项目名称:lab

一杯米酒 852

基于分位数回归的静态CoVaR计算 案例与代码

原文链接:https://bbs.pinggu.org/thread-7925441-1-1.html 一、静态CoVaR模型介绍 二、资料简介 实现对相关期刊论文进行论文重现,解决实证分析中的技术操作问题。里面包含了每一步详细的步骤,可以方便的利用这个手册解决大部分利用分位数回归计算静态CoVaR的论文的模型实现问题。即从数据下载到模型实现一整条操作步骤。 关键词:【分位数回归】【Co...

ChenQihome9的博客 7506

实现画布拖拽算子排布,通过flink实现算子编排计算,如何实现?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1072

小白学习网页知识

有错误还望指出,万分感谢

m0_54025235的博客 251

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

<span class=“js_title_inner“>如何利用BeautifulSoup选择器抓取京东网商品信息</span>

通常URL编码的方式是把需要编码的字符转化为%xx的形式,一般来说URL的编码是基于UTF-8的,当然也有的于浏览器平台有关。昨天小编利用Python正则表达式爬取了京东网商品信息,看过代码的小伙伴们基本上都坐不住了,辣么多的规则和辣么长的代码,悲伤辣么大,实在是受不鸟了。仔细观察源码,可以发现我们所需的目标信息是存在<li data-sku="*****" class="gl-item">标签下的,那么接下来我们就像剥洋葱一样,一层一层的去获取我们想要的信息。咦,新鲜的狗粮出炉咯~~~

pdcfighting的博客 417

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Atelier of Light and Shadow辅助Python爬虫开发:艺术数据采集实战

本文介绍了如何在星图GPU平台上自动化部署📜 灵感画廊 · Atelier of Light and Shadow镜像,高效辅助Python爬虫开发。该镜像可理解自然语言需求,自动生成合规、结构清晰的艺术网站数据采集代码,典型应用于谷德设计网等平台的项目元数据(如标题、材料、标签)批量提取与清洗。

weixin_31459297的博客 1082

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Python爬虫实战:高效抓取壁纸网站图片并应对反爬策略

网络爬虫技术作为数据采集的核心手段,其基本原理是通过模拟浏览器行为向服务器发送HTTP请求并解析响应内容。在Python生态中,requests库与BeautifulSoup组合是处理静态网页的经典方案,能够高效提取结构化数据。这项技术的工程价值在于将繁琐的手动操作自动化,广泛应用于数据归档、市场分析和内容聚合等场景。针对实际项目中常见的反爬机制,如请求频率限制和User-Agent验证,需要采用会话保持、请求头伪装和随机延时等策略进行应对。本文以壁纸网站抓取为例,详细解析如何通过分析网页结构、优化请求策略

weixin_34176694的博客 339

网页中的js文件和css文件,根据正则表达式匹配页面中js和css文件

标签:// 匹配List srcList = new List();List linkList = new List();// 匹配js文件string pattern = "]*?src=\"([^>]*?)\"[^>]*?>";MatchCollection mcs = Regex.Matches(html, pattern, RegexOptions.IgnoreCase);foreach ...

weixin_33365244的博客 695

如何利用快捷指令制作快递取件码提醒?

当收到快递的时候,很有可能会忘记另外收到取件码的文字过多时,第一时间找不到取件码例 【递管家】您的韵达速递:*4113已到金风科技北门1号快递柜,请凭取件码11309821前往取件,咨询写递管家。

分享 Windows 系统部署、镜像封装、终端管理、故障排查与运维自动化实践,涵盖 Sysinternals、PowerShell 和 AI 工具应用。记录真实问题、探索过程与解决方法,也分享 AI 时代的学习心得和实践经验,让技术更易理解 6万+

正则表达式获取a便签内的href链接举例(a标签内容是可变的)

pattern = re.compile(r'&lt;a\b[^&gt;]+\bhref="([^"]*)"[^&gt;]*&gt;' + str(link_text) + '.*?&lt;/a&gt;') result = pattern.search(html) # print(result.group(1)) result_url = result.group(1) #页面内的...

盘行 1万+

js 获取当前href

这将分别输出协议、主机、路径、查询参数和片段标识符部分的信息。如果你只希望获取URL的某些部分,比如路径或查询参数,可以使用。来获取当前页面的URL。上述代码获取当前页面的完整URL,并将其存储在。在JavaScript中,你可以通过。语句将其打印到控制台,以便查看。

代码帮 929

JS 获取href带参数跳转的值

//var i = 1; //var j = 2; //用法(1) local.href = "xxx.html?id=1" //用法(2) local.href = "xxx.html?id=" + i //用法(3) local.href = "xxx.html?id=" + i "&amp;j=" j function getUrlParam(name) { //构造一个含有目标...

weixin_42307129的博客 8452

php 正则获取html id节点,JS正则获取HTML元素的方法

本文实例讲述了JS正则获取HTML元素的方法。分享给大家供大家参考,具体如下:var html = $("#summaryTemplate").html();var imageMath = /]*(?=target-type=("|')replace("|'))[^/,]*\/>/;var scriptMath = /]*(?=target-type=("|')replace("|'))[^...

weixin_26763955的博客 424

(原)C#正则表达式举例,采用正则表达式找出html,css,js文件中的图片路径

正则: 查找Img标签开头的图片路径 [iI][mM][gG][\s]*[sS][rR][cC][\s]*=[\s'"]*(?<ref_value>.*?(\.gif|\.jpg|\.png)) 查找Function中的图片路径 [a-zA-Z_][a-zA-Z0-9_]+[\s]*\([^)]+?('|")(?<ref_value>[a-zA-Z0-9/...

weixin_30877227的博客 430

使用js写一个正则获取页面中所有的url地址

在前端开发中,使用JavaScript和正则表达式来获取页面中所有的URL地址是一个常见的任务。还有一点需要注意的是,这种方法只能提取HTML内容中直接可见的URL。如果URL是动态生成的(例如,通过JavaScript代码),那么这种方法可能无法提取到这些URL。在这种情况下,你可能需要使用其他方法来获取这些动态生成的URL。请注意,这个正则表达式是一个简单的示例,可能无法匹配所有可能的URL格式。另外,如果你想要从特定的HTML元素(而不是整个页面)中提取URL,你可以将。

王铁柱666的博客 429
上一篇: POC相关概念
下一篇: CentOS7 服务器分析挖矿病毒,清理挖矿病毒 tor2web
dkgee
博客等级 码龄14年 43粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值