用不同方式采集网页链接

构建与采集高效视频网页平台 网络爬虫,俗称“网络蜘蛛”或“网络机器人”,是一种自动化提取网页数据的程序。其基本原理是模拟人类用户的行为,在互联网上按照既定的规则自动浏览网页,从网页中抓取信息,如文本、图片、视频等。爬虫工作流程通常包括初始化URL集合、访问网页、解析网页内容、提取有效信息、存储数据和递归处理等步骤。# 示例代码:简单爬虫的实现# 提取网页中的所有链接在上述代码中,用于发起HTTP请求获取网页内容,解析HTML文档,find_all方法用于查找文档中所有的标签,并输出其中的href属性值。 阅读详情

要求:通过程序下载www.pku.edu.cn网页,采用不同方法将链接全部采集出【注:仅要带有href,且href的值不能以#开始,不能含有JavaScript/vbscript。】。
   1、用字符串处理办法,将所有链接采集出,格式是名称及其对应链接,注:不能依赖BS4;
   2、用正则表达式的方法,将所有链接采集出,格式是名称及其对应链接,注:不能依赖BS4;
   3、用BS的方法,将所有链接采集出,格式是名称及其对应链接;

链接:点击打开链接

代码1:

import requests
###  获取网页内容
url = 'http://www.pku.edu.cn'#定义url
res = requests.get(url)
res.encoding = "utf-8"  # 设置网页编码
###将网页内容整合为一行
strTxt=res.text.replace('\n','')

###       开始处理字符串    ##############
#分割字符串
allFind=strTxt.split(r"</a>")
#用字典来保存链接
dictA={}
#对每一个含有链接的str做处理
for include_a in allFind:
    #寻找链接的开始位置
    if('<a' in include_a ):
        #找到<a,并把之前的(没用的)都截断
        index_a=include_a.index('<a ')
        tem=include_a[index_a:]
        #找到’>‘,这样>后面的就是链接名称
        if ('href' in tem and '>' in tem ):
            #print(tem)
            #这样一分割,nameList[1]就是名称
            nameList = tem.split('>')
            name=nameList[1]
            #print(name[1])
            ##再次分割,href的后“之前的就是需要的东西
            index_href=nameList[0].index('href')
            ##+6直接去掉    href="
            hrefList=nameList[0][index_href+6:].split("\"")
            #href就是  hrefList[0]
            href=hrefList[0]
            #print(href[0])
            #做一些判断 按照要求,href开头不能为#,href中不能含有javascript/vbscript,有一些图片,直接删除
            if (href != '') and (href[0]!= '#') and ('javascript' not in href) and (
                'vbscript' not in href) and 'img'not in name and name!="":
                #做一些优化,如果连接不完整,则补上前缀
                if href[0:4]!='http':
                    href='http://www.pku.edu.cn/'+href
                dictA[name]=href
            #print('------------------------------')
#######                输出保存           ##########################################################
numA=0
for i in dictA:
    print(i,dictA[i],sep="    ")
    numA+=1
print(numA)

fd=open('./txt/1.txt','w',encoding='utf-8')
for i in dictA:
    print(i,dictA[i],file=fd,sep="\t")
fd.close()

代码2:

import requests
import re
####  获取网页内容    ############################
url = 'http://www.pku.edu.cn'#定义url
res = requests.get(url)
res.encoding = "utf-8"  # 设置网页编码
###将网页内容整合为一行
strTxt=res.text.replace('\n','')

###       开始处理字符串    ########################
#找到所有的链接
allFind=re.findall(r"<a .*?</a>",strTxt)
#用来保存最后的链接
dictA={}
#对每个含有链接的字符串进行处理
for include_a in allFind:
    ##分割字符串,则split_a[2]为名称,split_a[1]为含有href的字符串
    split_a=re.split('>|<',include_a)
    #print(con[2], con[1], sep="   $$$$$  ")
    #保存名称
    name=split_a[2]
    #只处理名字不为空且含有href的字符串
    if len(name)>0 and 'href' in split_a[1]:
        #print(con[1])
        #正则表达式,将href匹配出来
        match_include_href=re.search(r'href=".*?"',split_a[1])
        #处理一些奇怪的异常,
        if match_include_href is None:
            continue
        #截取""的东西
        match_include_yinhao = re.search(r'".*?"', match_include_href.group())
        #去掉左右两边的引号
        strHref=match_include_yinhao.group().strip('"')
        # 做一些判断 按照要求,href开头不能为#,href中不能含有javascript/vbscript,有一些图片,直接删除
        if (strHref !='') and (strHref[0]!='#')and ('javascript' not in strHref )and ('vbscript'  not in strHref):
            # 做一些优化,如果连接不完整,则补上前缀
            if strHref[0:4] != 'http':
                strHref = 'http://www.pku.edu.cn/' + strHref
            dictA[name] = strHref
            #print('------------------------------------')
#######                输出保存           ##########################################################
numA=0

for i in dictA:
    print(i,dictA[i],sep="    ")
    numA+=1

print(numA)

fd=open('./txt/2.txt','w',encoding='utf-8')
for i in dictA:
    print(i,dictA[i],file=fd,sep="\t")
fd.close()

代码3:

import requests
from bs4 import BeautifulSoup
####  获取网页内容
url = 'http://www.pku.edu.cn'#定义url
res = requests.get(url)
res.encoding = "utf-8"  # 设置网页编码

####       开始处理网页内容   ########################
soup = BeautifulSoup(res.text, "html.parser")

#print(soup)
#查找带有href的链接
a_include_href=soup.select('a[href]')
#用来保存链接
dictA={}
#对每一个链接进行处理
for include_a in a_include_href:
    #name 就是include_a.get_text(),href=include_a.attrs['href']
    name=include_a.get_text()
    href=str(include_a.attrs['href'])
    # 做一些判断 按照要求,href开头不能为#,href中不能含有javascript/vbscript,有一些图片,直接删除
    if  (href !='') and (href[0]!='#')and ('javascript' not in href )and ('vbscript'  not in href )and (name!="")and( 'img' not in name ):
        # 做一些优化,如果连接不完整,则补上前缀
        if href[0:4] != 'http':
            tem = 'http://www.pku.edu.cn/' + href
            dictA[name] = tem
        else:
            dictA[name]=href
#######                输出保存           ##########################################################
num_A=0
for i in dictA:
    if(i.strip(' ')!='' ):
        print(i, dictA[i],sep="   ")
        num_A+=1
print("num_ral   :",num_A)
#print(dictA[''])

fd=open('./txt/3.txt','w',encoding='utf-8')
for i in dictA:
    print(i,dictA[i],file=fd,sep="\t")
fd.close()
基于Hadoop的NBA篮球球员大数据分析与可视化系统大数据分析系统python的项目(源码+lw+部署文档+讲解等) 本系统以 Hadoop 为基础,致力于对 NBA 篮球球员的海量数据进行深入分析与可视化呈现。它能够收集来自多个数据源的丰富数据,包括球员比赛统计数据、身体素质数据、技术特点数据等。利用 Hadoop 的分布式存储和计算能力,对这些大规模数据进行高效处理。通过数据分析算法,挖掘球员的潜在价值和特点,如球员的得分能力趋势、篮板球效率变化、不同位置球员的技术差异等。同时,借助先进的可视化技术,将分析结果以直观的图表、图形等形式展示出来。教练和球队管理层可以通过可视化界面清晰地了解球员的综合表现和发展态势,从而制 阅读详情

相关推荐

kaggle-NeurIPS - Open Polymer Prediction 2025-0.069

本文摘要: 本研究基于多任务学习框架,开发了聚合物物理化学性质预测模型,能够根据SMILES字符串同步预测玻璃化转变温度(Tg)、分数游离体积(FFV)等5种关键性质。针对数据缺失率高、样本不均衡等挑战,采用"先补充后扩充"策略整合多源数据,并融合RDKit分子描述符、ChemBERTa语义特征和自编码器特征构建多维度表征。模型采用硬参数共享架构,结合动态加权损失函数和早停机制,在验证集上表现出色,其中密度预测R²达0.92。研究为聚合物性能的高通量预测提供了有效解决方案,对材料智能设计具有重要参考价值。

2302_78976920的博客 783

三款链接采集工具,哪个更适合你?

作为网络编辑,我在此为大家推荐几款优质的链接采集工具,以供各位挑选。作为现代互联网生活中不可或缺的辅助,它们能助您迅速有效地获取所需信息。然而,现今市场上此类工具有诸多可选,因此选择适合个人需求的设备便显得至关重要。一、界面设计对链接采集工具有欢迎的考量因素之一便是其界面设计。

Xgvafdj52的博客 838

Minitab田口设计实战:如何用正交试验优化遗传算法参数(附完整操作步骤)

本文详细介绍了如何利用Minitab田口设计进行遗传算法参数优化,通过正交试验方法显著提升效率。文章涵盖实验设计、Minitab操作步骤、结果分析及高级技巧,帮助工程师快速掌握这一工业级优化技术,实现算法性能的显著提升。

wind6的博客 866

揭秘文章链接采集:5步骤,助你事半功倍

作为一名资深网站文章链接采集员,我在行业内拥有丰富的经验。今日,我将向各位分享我所总结的宝贵经验。对文章链接进行采集,是我们保护知识产权,提高工作效率的关键步骤之一。以下便是我的观点阐述与经验分享:1.确定采集目标采集前需构建明确的采集目标。如需获取特定主题文章链接或特定网站全部文章连接?

O01U1fVP的博客 426

高光谱知识(1)-高光谱成像技术的理解

系列文章目录 高光谱技术可以获得待观测目标或场景的连续单色光谱图像,并通过空间维(x, y)数据和光谱维(λ)数据共同组成三维观测数据立方体,从而为研究人员提供探测目标或场景中的每一个点的空间和光谱特征细节。这种兼具相机的高分辨成像能力和光谱仪的高光谱分辨能力使得高光谱被广泛应用于测绘遥感、目标识别、环境监测与评估、临床影像诊断、过程监控等任务中,并在地理、空间、海洋、气候、大气、农业、植被、生态、医药、安防、制造与色度等多个领域中发挥巨大作用。 文章目录系列文章目录前言一、按获取数据的过程划分二、按照光

Echo_Code的博客 1万+

【免费下载】 探秘PkuLaw_Spider:一个高效获取北大法条数据的利器

探秘PkuLaw_Spider:一个高效获取北大法条数据的利器 项目简介 是一个基于Python编写的爬虫框架,专门用于抓取北京大学法学院提供的法律数据库——北大法宝网上的法律法规信息。这个开源项目旨在帮助法律研究人员、学生及开发者快速、便捷地获取和分析相关法律数据。 技术分析 工作原理 PkuLaw_Spider 使用了流行的Python爬虫库Scrapy,它通过模拟浏览器行为,自动化发送HTT...

gitblog_00017的博客 3224

脑机接口(BCI)从原理到开发实战 07|运动想象BCI实战:基于BCI Competition IV 2a数据集

本文基于BCI Competition IV 2a数据集,详细介绍运动想象脑机接口系统的全流程实现。首先概述了该数据集的实验范式、参数特点和优势,然后指导环境准备与数据下载。通过代码示例展示了数据加载、事件标记提取和信号可视化方法。重点构建了完整的预处理流水线,包括通道选择、重参考、带通滤波(8-30Hz)和ICA去伪迹等关键步骤。文章旨在帮助读者将零散的BCI知识整合为完整的实战项目,掌握从原始脑电数据到运动意图解码的核心技术。

小明的博客 850

如何实现网站内容采集

远程获取网页内容.经过一定的处理和灵活应用,可以开发成成体系网站内容采集系统.通常也叫做"新闻小偷"一般来说.做内容采集分为如下几个大致的步骤:1.远程获取页面的全部Html源文本.2.通过过滤处理,分析有效内容文本.(通常用正则表达式来截取有效数据)3.将格式有效的数据,根据自己的数据库结构分标题,内容....一些其他属性保存到自己的本地数据库.ok整个采集过程如此简单.原理也不难.下面我们看看

学无止境的专栏 1760

【定位模块算法】amcl(蒙特卡洛)粒子滤波定位算法(附C++代码)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言(1)amcl定位框架介绍(2)amcl定位框架组成(1)ROS-TF坐标转换树【ROS的工具】(2)robot_pose_ekf扩展卡尔曼位姿估计算法(3)定位amcl自适应蒙特卡洛定位,adaptive monte carlo localizaion**(3)amcl定位节点的订阅与发布(4)amcl定位功能包用法(1)编写amcl节点相关的launch(amcl_omni.l

qq_35635374的博客 4403

基于MATLAB的最大重叠离散小波变换(MODWT)算法详解

最大重叠离散小波变换(Maximal Overlap Discrete Wavelet Transform, MODWT)是DWT的重要改进形式,由Percival和Walden等人在20世纪90年代系统提出并完善。MODWT通过消除下采样操作,采用样本平移不变的分解方式,解决了DWT的多个固有缺陷。MODWT的核心创新在于取消下采样环节。与DWT每级分解后对滤波输出进行二分下采样不同,MODWT在每一级都使用相同的滤波器,但通过插入零值的方式调整滤波器系数,保持每级系数数量与原始信号相同。

qq_42212808的博客 115

PHP数据收集:5个实用技巧教你轻松采集网页内容

各位朋友们好,我是PHP数据收集专家。今日想与诸位共享关于PHP采集文章内容的专业工具和实用技能。若对此领域有兴趣,欢迎共同研究探讨。1.使用curl函数进行网页抓取若要收集网页信息,首先需获取其源代码。借助php的curl函数,您可便捷做到这一点。只需设定适当选项,即可轻松获取网页源码

Xgvafdj54的博客 1427

全局注意机制 GAM | Global Attention Mechanism: Retain Information to Enhance Channel-Spatial Interactions

全局注意机制 GAM

Coding... 2576

python递归爬取整站链接,广度优先,主要用于监控网站是否发布了新的文章

除了js脚本跳转之外,无论是绝对链接,相对链接,还是有层级的相对链接(如../../xxx.htm),都可以很好的整理成完整的URL,其中leve是定义页面层级深度的。要想真正使用,还有好多路要走,比如:过滤页面类型,数据去重,多线程,批处理爬取多个网站等。 # coding:utf-8 # 网页url采集爬虫,给定网址,以及存储文件,将该网页内全部网址采集下,可指定文件存储方式 import...

chaishen10000的专栏 3057

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

火车头采集ajax网址的技巧,使用post方法获得采集网址

大家在采集列表分页的时候会遇到,点击下面的分页页面内容是改变了,但是浏览器地址却没有改变 ,这个种情况分页是post的方式,今天我们来说下这个种情况该如何获取分页,用这个网址首先你要会使用fiddler抓包,(教程:http://bbs.locoy.com/spider-107387-1-1.html ),这里假设你已经掌握了fiddler的使用了,我们开启fiddler然后点击下面的分页看下fi...

weixin_42516178的博客 2511

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

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

分享75个JS特效倒计时,总有一款适合您

js

zy0412326的专栏 1146

八爪鱼 ajax 循环采集,网页数据采集五大循环方式详解 - 八爪鱼采集器

在八爪鱼中,创建循环列表有两种方式,一种是通过点击页面元素,选择相似的项,由八爪鱼自动创建的。适用于列表信息采集、列表及详情页采集。当自动创建的循环不能满足需求的时候,则需要我们手动创建或者修改循环,以满足更多的数据采集需求。循环的高级选项中,有五大循环方式:URL循环、文本循环、单个元素循环、固定元素列表循环和不固定元素列表循环。一、URL循环(云采集可实现加速)适用情况:在多个同类型的网页中,...

weixin_32659481的博客 9050

网页采集器-免费的网页采集器

网页采集器是帮助我们高效获取互联网信息的重要工具,147SEO的网页采集器为用户提供了出色的功能和便捷的操作体验。不论您是研究人员、学生、企业家还是其他领域的专业人士,网页采集器都将成为您的信息捕手,帮助您在竞争激烈的时代中脱颖而出。定时自动采集:147SEO的网页采集器提供了定时自动采集的功能,您可以设定采集的时间间隔,确保您的信息库始终保持最新。强大的采集功能:147SEO的网页采集器拥有强大的采集能力,能够精确捕捉您需要的网页内容,包括文字、图片、链接等。如何使用147SEO的网页采集器。

qq_787143156的博客 1418

html 抓取移动,网页采集提取数据教程,以自定义抓取方式为例 - 八爪鱼采集器...

网页上的数据类型十分丰富:文本、图片、链接、源码等。在数据采集过程中,不同类型的数据类型,对应的抓取方式是不同的。本文将讲解常见的数据类型与其抓取方式。示例网址:https://movie.douban.com/explore#!type=movie&tag=%E7%BB%8F%E5%85%B8&sort=recommend&page_limit=20&page_s...

weixin_39883286的博客 2536

网页数据批量采集技巧大全!整站采集不用愁!

针对动态布局网页批量采集难题,本文提供四种实用整站采集方案,结合简数采集器使用: 1)利用文章页地址规律直接批量生成采集; 2)通过文章页的 "上/下一条" 链接实现循环采集; 3)利用网站地图索引获取全站文章链接; 4)针对JSON数据结构,简数提供可视化配置模式,支持自动遍历提取每条数据中的指定字段内容,简单便捷!

moshi_6的博客 1500

Python网络爬虫数据采集实战:同花顺动态网页爬取

前文的爬虫都建立在静态网页基础之上,首先通过请求网站url获取到网页源代码。之后对源代码进行信息提取进而存储即可,本文则针对动态网页进行数据采集,首先介绍Ajax相关理论,之后实战爬取同花顺动态网页,获取个股相关信息。 目录 一、Ajax理论 1.Ajax简介 2.Ajax分析 3.Ajax提取 二、网页分析 1.网页概览 2.A...

大数据之眸 2万+

用 Dataify 网页采集 API 做一次网页数据提取:从选择采集工具到导出结构化结果

传统方式里,自己写脚本通常先拿到的是一整段 HTML,然后还要继续写解析代码,把标题、时间、正文、价格、评分等字段拆出来。采集结果可以直接导出为 JSON、CSV 或 xlsx,后续无论是给运营分析、技术入库,还是接入 AI 工作流,都更加方便。对于电商、广告、社媒、舆情和 AI 数据准备这类场景来说,网页采集 API 更适合作为稳定的数据入口,而不是每次都从零写一套采集工具脚本。例如品牌方可以监测品牌名、产品名、公司高管、竞品名称等关键词相关页面,一旦出现负面标题或高风险内容,就可以及时处理。

todoitbo的博客 3万+

开源桌面工具:批量采集公开网页资源链接,并按网站自定义分类

分享一款开源 Windows 桌面工具,可批量发现公开网页文章、提取多种网盘分享链接,并按不同网站独立配置来源栏目映射。支持断点续采、待分类批量处理、Excel/TXT 导出,也适配藏知库资源整理流程。

huoranxiansheng的博客 195

数据采集卡 html报表,网页表格数据采集助手

网页表格数据采集助手是一款表格采集工具,可以为用户将网站上的表格以excel的格式储存到本地,当然也可以实用纯文本,这个能够根据个人需要进行设置。小编精选:网站采集器软件介绍可以采集单页的规则的和不规则的表格,还可以定时自动连续不断的采集指定网站的表格,而且可以指定采集需要的字段内容,采集后的内容既可以保存为EXCEL软件能够读取的文件格式,也能保存为纯文本的保留原表格样子的表格。使用方法1、首先...

weixin_39843847的博客 514

火车采集器-对在固定网页上进行更新的文件的下载方法

遇到的案例是这样的,在http://www.xxx.com/index.html 上有多个pdf的下载连接,不定时会有新的pdf增加,现在需要监控网页变化,并下载新增加的文件。 直接使用火车采集器没法(至少我还没试出来)完成任务。 1,使用缺省设置,起始网址是 http://www.xxx.com/index.html ,使用“自动获取地址链接”,可以得到pdf文件的链接地址。在第2步“内容采集”的步骤中,会将pdf文件当为常规的html网页进行读取,但无法下载文件。 2,将起始网址作为内容页网址,也

euzen的博客 823
上一篇: 函数
下一篇: javaScript 中的 this 指向谁
shuzhuang25
博客等级 码龄11年 11粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值