简单理解爬虫的概念

简单来说:

爬虫,即网络蜘蛛,是伪装成客户端与服务器进行数据交互的程序。

代码

代码教程分享(无偿):

思路

1.获取网页的源码

pythondef askURL(url):head={"User-Agent":"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Mobile Safari/537.36 Edg/121.0.0.0"}request = urllib.request.Request(url,headers=head)html= ""try:response=urllib.request.urlopen(request)html=response.read().decode("utf-8")#print(html)except urllib.error.URLError as e:if hasattr(e,"code"):print(e.code)if hasattr(e,"reason"):print(e.reason)return html
 

用个循环,根据网页制定一下url

找到用于伪装客户端User-Agent
在network里刷新一下网页,找到发送的标头header

这个是user-agent:Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Mobile Safari/537.36 Edg/121.0.0.0

用urllib获取你制定的url的源码
在 try 块中:

调用 urllib.request.urlopen(request) 发送HTTP请求,并获取响应对象 response。
通过 response.read() 获取服务器返回的原始二进制数据。
使用 decode("utf-8") 方法将二进制数据解码成UTF-8编码的字符串,并将其赋值给变量 html。
如果在执行 urlopen 函数过程中出现 urllib.error.URLError 异常,则进入 except 块:

判断异常对象是否包含 .code 属性,如果有则打印出HTTP状态码。
再判断异常对象是否包含 .reason 属性,如果有则打印出错误原因。
最后,无论是否发生异常,都返回抓取到的网页HTML内容(即变量 html)

2.解析数据

pythondef getDate(baseurl):datalist = []# 1.爬取网页for i in trange(0,10):url = baseurl + str(i*25)html = askURL(url)      #保存获取到的网络源码soup = BeautifulSoup(html,"html.parser")for item in soup.find_all('div',class_="item"):# 2.逐一解析数据item =str(item)data=[]name = re.findall(findName,item)[0]data.append(name)link = re.findall(findLink,item)[0]data.append(link)img = re.findall(findImagesrc,item)[0]data.append(img)rating = re.findall(findRating,item)data.append(rating)comment = re.findall(findComment,item)if len(comment)!=0:comment=comment[0].replace("。","")data.append(comment)else:data.append("  ")datalist.append(data)return datalist
 

BeautifulSoup
bs4是一个强大的库,用于从HTML和XML文件中提取数据,它能够将复杂的HTML结构转换成树形结构(即元素树),使得开发者可以方便地搜索、遍历以及修改网页内容。

"html.parser": 这是BeautifulSoup用来解析HTML文档的解析器。在这个案例中,它是指Python自带的标准HTML解析器。除了标准的解析器外,BeautifulSoup还可以配合其他第三方解析器如 lxml 来使用。

用bs4和re筛选信息

3.保存数据 写入excel表中

需要用到xwlt库

pythondef savedata(datalist,savepath):book = xlwt.Workbook(encoding="utf-8",style_compression=0)   #压缩样式效果,设为0sheet = book.add_sheet('top250',cell_overwrite_ok=True)  #每个单元在写入时覆盖以前的内容col = ('电影中文名','电影详情链接','图片链接','电影评分','电影热评')for i in range(0,len(col)):sheet.write(0,i,col[i])   #列名for i in range (0,250):data = datalist[i]for j in range (0,len(col)):sheet.write(i+1,j,data[j])book.save(savepath)

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

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

相关文章

SQL综合查询-学校教务管理系统数据库

一、一个完整的数据查询语句的格式 SELECT 【ALL|DISTINCT】<目标列表达式>【&#xff0c;<目标列表达式2>&#xff0c;...】 FROM <表名或视图名1>【&#xff0c;<表名或视图名2>&#xff0c;...】 【WHERE <元组选择条件表达式>】 【GROUP…

利用streamlit开发大模型API调用对话网页应用

利用streamlit开发大模型API调用对话网页应用 介绍 Streamlit是一个用于构建数据应用的开源框架&#xff0c;其简单易用的界面使得数据科学家和开发人员能够快速创建交互式应用。而OpenAI API则提供了强大的语言模型&#xff0c;可以生成自然语言响应。将这两者结合起来&…

【Computer Security : Art and Science】【Second Edition】

以下是书的目录&#xff1a; #### 第一部分&#xff1a;介绍 1. 计算机安全概述 - 1.1 基本组件 - 1.2 威胁 - 1.3 策略与机制 - 1.4 假设与信任 - 1.5 保证 - 1.6 操作问题 - 1.7 人为问题 - 1.8 综合概述 - 1.9 总结 - 1.10 研究问…

redis-基础篇(2)

黑马redis-基础篇笔记 3. redis的java客户端-Jedis 在Redis官网中提供了各种语言的客户端&#xff0c;地址&#xff1a;https://redis.io/docs/clients/ 标记为❤的就是推荐使用的java客户端&#xff0c;包括&#xff1a; Jedis和Lettuce&#xff1a;这两个主要是提供了Redi…

半结构化数据

定义&#xff1a; 半结构化数据是一种数据类型&#xff0c;它既不是完全结构化也不是完全非结构化。 特点&#xff1a; 元素组合、元素可变性、位置和顺序可变、重复性、可嵌套 应用&#xff1a; 网页内容、xml文档、json对象、电子邮件、日志文件 半结构化可转换成结构化…

webClient + fastJSON2 获取json格式的数据,同时解析至java class 并 下划线转驼峰

webClient中 .accept(MediaType.APPLICATION_JSON) 决定返回值是什么格式一般情况可以不写&#xff0c;但这里要获取JSON格式的 .bodyToMono(String.class)指定返回类型 fastJSON2中 Student student JSON.parseObject(result, Student.class, JSONReader.Feature.SupportSm…

# 消息中间件 RocketMQ 高级功能和源码分析(十)

消息中间件 RocketMQ 高级功能和源码分析&#xff08;十&#xff09; 一、消息中间件 RocketMQ 源码分析&#xff1a; 消息消费概述 1、集群模式和广播模式 消息消费以组的模式开展&#xff0c;一个消费组内可以包含多个消费者&#xff0c;每一个消费者组可订阅多个主题&…

PointCloudLib 点云边缘点提取 C++版本

0.实现效果 1.算法原理 PCL(Point Cloud Library)中获取点云边界的算法主要基于点云数据的几何特征和法向量信息。以下是对该算法的详细解释,按照清晰的格式进行归纳: 算法概述 PCL中的点云边界提取算法主要用于从3D点云数据中识别并提取出位于物体边界上的点。这些边界…

邀请函 | 人大金仓邀您相聚第十三届中国国际国防电子展览会

盛夏六月 备受瞩目的 第十三届中国国际国防电子展览会 将于6月26日至28日 在北京国家会议中心盛大举办 作为数据库领域国家队 人大金仓 将携系列行业解决方案 和创新实践成果亮相 期待您莅临指导 ↓↓↓↓↓↓ CIDEX 2024 中国国际国防电子展览会&#xff08;简称CIDEX&#xf…

前端核心框架Vue指令详解

目录 ▐ 关于Vue指令的介绍 ▐ v-text与v-html ▐ v-on ▐ v-model ▐ v-show与v-if ▐ v-bind ▐ v-for ▐ 前言&#xff1a;在学习Vue框架过程中&#xff0c;大家一定要多参考官方API &#xff01; Vue2官方网址https://v2.cn.vuejs.org/v2/guide/ ▐ 关于Vue指令的…

免费制作流程图网页版本

超级好用的5个免费在线版流程图制作网站_流程图网站-CSDN博客

汽车IVI中控开发入门及进阶(三十):视频图像滚动问题分析(imx6+TVP5150+Camera)

前言: DA主控SOC采用imx6,TVP5150作为camera摄像头视频的解码decode芯片,imx6采用linux系统。 关于imx6,请参阅:汽车IVI中控开发入门及进阶(二十九):i.MX6-CSDN博客 Contributor III:

multiprocessing多进程计算及与rabbitmq消息通讯实践

1. 需求与设计 我所设计的计算服务旨在满足多个客户对复杂计算任务的需求。由于这些计算任务通常耗时较长且资源消耗较大&#xff0c;为了优化客户体验并减少等待时间&#xff0c;我采取了并行计算的策略来显著提升计算效率。 为实现这一目标&#xff0c;我计划利用Python的m…

Vue的移动端开发:使用Vue和相关技术,例如Weex或者Nativescript,进行移动端开发

介绍 Vue.js Vue.js 的核心概念和特性: 响应式数据绑定:Vue.js 的一个核心特性就是其响应式数据绑定系统,这意味着当数据更新时,所有运用到这些数据的地方都会适时地更新。组件化:Vue.js 很大程度上依赖于组件化,这意味着你可以创建可重复使用的代码片段,显著提高开发效…

基于Java实训中心管理系统设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;…

实现具有多个实现类的接口并为每个实现类定义一个名字的方法

在Java中&#xff0c;实现具有多个实现类的接口并为每个实现类定义一个名字的方法&#xff0c;可以通过使用工厂模式或服务定位器模式来完成。以下是使用工厂模式的一个示例&#xff1a; 定义接口和实现类 首先&#xff0c;定义一个接口和多个实现类&#xff1a; // 接口 publ…

获取当前的域名与端口

在JavaScript中&#xff0c;你可以使用window.location对象来获取当前页面的URL&#xff0c;并从中提取域名和端口。但是&#xff0c;请注意&#xff0c;如果端口是默认的&#xff08;例如&#xff0c;HTTP的80或HTTPS的443&#xff09;&#xff0c;则URL中可能不包含端口号。 …

EasyExcel导入导出Excel数据

EasyExcel 是阿里巴巴开源的一个用于读写Excel文件的Java库。它提供了简单的API&#xff0c;可以方便地操作Excel文件&#xff0c;特别适合处理大数据量的Excel文件。 EasyExcel的主要特点: 高性能&#xff1a;设计用于高效处理大数据量。内存管理&#xff1a;采用流模式读写…

堆(数据结构篇)

数据结构之堆(优先队列) 二叉堆 概念&#xff1a; 优先队列是一个根据优先性而先去执行操作的一种特殊队列&#xff0c;平常队列是先进先出&#xff0c;但是优先队列是根据优先级选择先出的元素。优先队列的主要操作有插入和删除最小值 堆(heap)通常是指二叉堆&#xff0c;因…

碳化硅陶瓷膜的生产工艺和应用

一、生产工艺 碳化硅陶瓷膜的生产工艺多样&#xff0c;其中浸渍提拉法和喷涂法为两大主流技术。 浸渍提拉法 浸渍提拉法是一种广泛应用的制备方法。其过程主要包括&#xff1a;先将陶瓷颗粒或者聚合物前体分散在水或有机溶剂中&#xff0c;形成均质稳定的制膜液。随后&#xff…