首页 > 编程语言 >python中国科学院院士图片+文本爬虫代码

python中国科学院院士图片+文本爬虫代码

时间:2025-01-12 15:28:17浏览次数:3  
标签:网页 python 爬虫 院士 re 地址 result 文本 cae

1.爬取网页

https://www.cae.cn/cae/html/main/col48/column_48_1.html 

2.爬虫思路 

1.网页源码分析,判断网页是动态网页与静态网页(改网页位静态网页)

2.获取每位院士网页地址

3.进入网页查看院士图片地址,与院士文本介绍内容,(利用re库解析网页)

4.数据存储,图片存储,注意保存图片格式,图片格式有png,jpg等格式,保存图片士注意要加入content,保证内容位图片二进制源码,否则会出现错误。

3.每位院士地址获取

图中a标签中href值位每位院士的网页地址,且该地址不完整,要对地址进行字符串拼接处理加入https://www.cae.cn,利用re库对该网页地址所有的院士网页数据解析。利用拼接好的网页地址进行网页请去获取数据,

4.院士图片地址获取

 图中a标签下img标签中src值位每位院士的图片地址,且该地址不完整,要对地址进行字符串拼接处理,同样要加入 加入https://www.cae.cn, 院士介绍数据获取方法相同,

5.爬虫代码

import re
import os	
import os.path
import requests
#创建用来存放爬取结果文件的文件夹
dstDir='YuanShi'
if not os.path.isdir(dstDir):
    os.mkdir (dstDir)
#爬取起始页面
startUrl =r'https://www.cae.cn/cae/html/main/col48/column_48_1.html'
#读取网页内容
with requests.get(startUrl) as fp:
    content=fp.text
    print(content)
#提取并遍历每位院士的链接
pattern =r'<li class="name_list"><a href="(.+)" target="_blank">(.+)</a></li>'
result=re.findall (pattern, content)
print(result)
#爬取每位院士的简介和照片 
for item in result:
    perUrl, name =item
    print('正在爬取{}…'.format(perUrl)) 
    name=os.path.join(dstDir,name)
    perUrl =r'http://www.cae.cn' + perUrl 
    with requests.get(perUrl) as fp:
        content=fp.text
    #抓取照片并保存为本地图片文件
    pattern=r'<img src="/cae/admin/upload/(.+)" style='
    result =re.findall(pattern,content, re.I) 
    print(result)
    if result:
        picurl=r'http://www.cae.cn/cae/admin/upload/{0}'.format(result[0])
        with open (name+'.png','wb' ) as pic:
            pic.write(requests.get(picurl).content)
    #抓取简介并写人本地文本文件 
    pattern =r'<p>(.+?)</p>'
    result =re.findall(pattern,content) 
    print(result)
    if result:
        intro = re.sub(' (<a.+</a >)|(&ensp;)|(&nbsp;)','','\n'.join(result))
        with open (name+'.txt','w', encoding='utf8') as fp:
            fp.write(intro)

 运行结果

标签:网页,python,爬虫,院士,re,地址,result,文本,cae
From: https://blog.csdn.net/m0_69704149/article/details/145093231

相关文章

  • vue3 + arcgis.js4.x---FeatureLayer(实现文本+图标)
    之前做arcgis.js开发的时候一直使用的是TextSymbol+SimpleMarkerSymbol实现的也就是一条数据打两个点(一个坐标点一个文本点)这种操作实在非常鸡肋;学会了FeatureLayer之后发现实现该功能非常简单constLayerView=newFeatureLayer({source:[newGraphic({......
  • 【DBOS Transact】Python 持久执行工具,轻量而强大
    背景介绍如果工作中我们要运行的程序分几个步骤去执行,如果当中间某个步骤执行失败的时候,我们不得不重新全部执行一遍,其实这样很费事费力,因为每次都是从头开始执行,而且这种代码放到生产中也会出现不稳定的情况,毕竟基础硬件的底层也会出现问题,比如当网络、操作系统等出现问题时,你所......
  • 2025毕设python在线美食点评系统程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于美食点评系统的研究,现有研究主要集中在大型综合平台的整体运营和功能优化方面,如大众点评、美团等平台的宏观运营模式、营销策略等......
  • 车道偏离预警(LDW)、车道保持辅助(LKA)、车道线检测-OpenCV、Python-滑动窗口、透视变
    车道偏离预警、车道保持辅助及车道线检测系统引言一、代码和文件1.项目文件说明2.项目的依赖包和环境3.运行代码二、整体代码逻辑1.相机校准2.车道检测/跟踪3.车道状态分析4.车道映射三、相机校准1.计算摄像机矩阵和失真系数四、图像和视频的处理步骤1.进行......
  • yolov8旋转目标检测部署教程(附代码c++_python)
    文章目录简介旋转目标检测的重要性挑战与难点技术方法数据增强特征提取旋转敏感的损失函数多任务学习先验知识引导后处理策略现有框架和技术未来趋势1.准备环境2.模型转换为ONNX格式导入库转换为ONNX3.ONNX模型部署导入库加载ONNX模型预处理后处理推理过程可视化结......
  • Python时间序列分析工具Aeon使用指南
    Aeon 是一个专注于时间序列处理的开源Python库,其设计理念遵循scikit-learn的API风格,为数据科学家和研究人员提供了一套完整的时间序列分析工具。该项目保持活跃开发,截至2024年仍持续更新。Aeon提供了以下主要功能模块:时间序列分类-支持多种分类算法实现-包含基于间隔、字典......
  • python 异常值检测与处理——3倍标准差法
    目录一、概述二、代码实现三、结果展示一、概述  3σ3σ3σ原则是一种基于正态分布的统计学原则,用于判断数据中的异常值。根据......
  • Python 2和Python 3之间有哪些主要区别?
    Python2和Python3是Python编程语言的两个主要版本,它们在语法、功能和性能上存在显著差异。这些差异不仅影响了代码的编写方式,还对程序的运行效率和可维护性产生了深远的影响。以下将详细阐述Python2与Python3之间的主要区别,并提供相应的示例代码。1.打印函数的变化在Pyt......
  • python中如何在装饰器中使用闭包来保存状态?
    在Python中,装饰器是一种强大的工具,可以用来增强函数或方法的功能,而无需修改其原始代码。装饰器本质上是一个闭包,它接收一个函数作为参数,并返回一个新的函数。闭包的一个重要特性是能够保存其外部作用域中的变量,即使外部函数已经执行完毕。这种特性使得闭包非常适合用于装饰器中......
  • Python程序题:恺撒密码
    恺撒密码是古罗马恺撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,即,字母表的对应关系如下:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬......