简单理解爬虫的概念

embedded/2024/10/22 14:44:15/

爬虫">简单来说:

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

代码

代码教程分享(无偿):

思路

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.ppmy.cn/embedded/53940.html

相关文章

单片机+DS18B20温度控制程序仿真与原理图PCB文件 可设上下限

资料下载地址:单片机DS18B20温度控制程序仿真与原理图PCB文件 可设上下限 目录 1、项目介绍 2、实物图 ​3、电路原理图 ​4、仿真原理图 ​5、部分代码 1、项目介绍 基于51单片机温度控制,使用18b20来做温度传感器,四位共阳数码管显…

DevOps搭建-JDK安装

当在进行DevOps搭建时,JDK(Java Development Kit)的安装是非常重要的一步,因为许多开发和部署工具都依赖于Java。以下是安装JDK的详细步骤: 下载JDK安装包: 访问Oracle官方网站或OpenJDK项目网站&#xf…

使用Docker Compose运行Elasticsearch

使用Docker Compose运行Elasticsearch可以帮助你快速搭建和管理Elasticsearch服务。以下是具体步骤: 1. 安装Docker和Docker Compose 确保你已经安装了Docker和Docker Compose。如果没有安装,可以参考官方文档进行安装: Docker安装指南Doc…

GPTs与Assistant API:哪一个更适合您?

梗概 主要讲解了OpenAI推出的两种不同的人工智能工具——GPTs和Assistant API,并比较了它们各自的特点和适用场景,帮助用户选择最适合自己需求的工具。 GPTs(生成预训练变换模型) 核心特点: 生成能力:GPTs…

webui automatic1111上可以跑stable diffusion 3的方法

stable diffusion 3 可以简单句子生成高质量图形,可以生成准确的文字,甚至可以支持中文。 stable diffusion 3 最初只支持API调用,最后把模型也完全开放了。Comfyui因为天生架构优势,第一时间跑起来了。既支持远程API模型调用&am…

文华财经盘立方博易大师主图指标公式大全源码均线

文华财经盘立方博易大师主图指标公式大全源码均线: N:3; EMA25:EMA(C,25),COLORRED,LINETHICK2; EMA70:EMA(C,70),COLORGREEN,LINETHICK2; EMA450:EMA(C,450),COLORYELLOW,LINETHICK2; CONDA1:EMA25>EMA70&&C>HV(H,6)&&C>EMA450&…

怎么优化亚马逊Listing?看这一篇就够了!

运营亚马逊最重要的工作之一就是优化listing,精心优化好亚马逊标题、五点描述、图片和关键词才能提高产品的可见性和吸引力,很多小伙伴对于怎么写出专业的亚马逊listing还是不知道如何下手,今天为大家分享一套实用的亚马逊listing优化指南&am…

视觉灵感的探索和分享平台

做设计没灵感?大脑一片空白?灵感是创作的源泉,也是作品的灵魂所在。工作中缺少灵感,这是每个设计师都会经历的苦恼,那当我们灵感匮乏的时候,该怎么办呢?别急,即时设计、SurfCG、Lapa…