通过python爬虫下载电影的网址和电影标题信息到excel表格中
zhezhongyun 2025-03-24 01:28 28 浏览
本代码演示去电影网址上抓取电影网址和电影名称的数据,并保存到本机到excel表格中
操作步骤如下:
一、去百度上搜索查询要爬去的电影网址:
搜索到的电影网址为:
http://dianying.2345.com/list/guzhuang------.html,即我们今天要通过python进行get请求的网址
二、开始测试爬取网址:
1、在360极速浏览器输入网址:
http://dianying.2345.com/list/guzhuang------.html。
2、按F12查看网址的源代码。
3、按住F5加载网页源代码。
4、找到左下角的Network,点击↖箭头,选择对应的电影,如下图所示:
相当于已经得出了如下结论:
所有的电影网址,标题信息都在标签里。
三、去pycharm里编写源代码
1、同时按alt+insert键,新建一个使用find_all匹配电影信息.py的文件。
2、根据以下3个步骤开始编写爬取网页源代码的代码:
①导入相应的库
②定义函数对网页进行get请求,并解析网址,并保存数据到excel中
③调用函数
代码示例如下:
#1、导入相应的库 import re,requests,random,os #导入正则,网页请求,随机,系统库 from bs4 import BeautifulSoup #从bs4中导入网页源代码解析库 import pandas as pd #导入pandas库,并设置为pd #2、定义函数对网页进行get请求 def gethtml(): url="http://dianying.2345.com/list/guzhuang------.html" agent1 = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36"} # 设定请求头的值agent1 agent2 = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"} # 设定请求头的值agent2 agent3 = {"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36"} # 设定请求头的值agent3 list1 = [agent1, agent2, agent3] # 设置3个请求头组成的列表,并赋值给列表list1 agent = random.choice(list1) # 请求头的值agent从列表list1里随机选择一个 try: response = requests.get(url, headers=agent) # 伪装浏览器对网站进行get请求,并将请求结果赋值给response response.encoding = response.apparent_encoding # 根据内容解析出网页的编码格式并赋值给response.encoding html = response.text # 将网页的源代码赋值给html soup=BeautifulSoup(html,"html.parser") #使用html.parser解析器对网页源代码进行解析,并将解析结果赋值给soup info = soup.find_all("em",attrs={"class":"emTit"}) #查找所有的当参数class属性值为emTit时的em标签,并将所有的查找结果赋值给info #发现所有电影信息都在黄飞鸿1:壮志凌云标签里, #故对上述标签信息进行正则匹配 print(info) list1=[] #设置列表list1为空列表,用来接收电影的网址信息 list2=[] #设置列表list2为空列表,用来接收电影的标题信息 for movieinfo in info: #在info里遍历所有的电影信息movieinfo print(movieinfo) #打印所有的电影信息 list1.append("http:"+movieinfo.a.get("href")) #将遍历出来的a标签的href属性值前加上http作为一个完整的网址添加到列表list1 list2.append(movieinfo.a.string) #将遍历出来的a标签的值添加到列表list2 print("list1:",list1) #打印列表list1 print("list2:",list2) #打印列表list2 dict1={"序号":range(1,len(list1)+1),"网址":list1,"电影标题":list2} # 上面这行代码设置dict1字典,字典的三个键分别是序号,网址,电影标题,对应的是存储在excel表格里的三个表头,即3个列标名称,字典的三个值分别是序号值,电影网址,电影标题名称 df=pd.DataFrame(dict1) #将dict1的数据保存为表格,并赋值给df变量 df.to_excel("E:\IT\PYthon\电影数据.xlsx") #将df的数据保存到E:\IT\PYthon\电影数据.xlsx的excel文件中,若没有这个文件,则自动新建这个文件并保存数据 except: #假如接收到错误反馈信息时 print("爬取失败") #打印爬取失败的提示 #3、调用爬取数据的函数 if __name__ == '__main__': gethtml() #调用gethtml函数
在pycharm同时按住ctrl+shift+F10运行代码,代码运行结果如下:
[王朝的女人杨贵妃, 龙门飞甲, 开封降魔记, 黄飞鸿1:壮志凌云, 神谕通天, 笑傲江湖3:东方不败…, 封魔传, 恶虎村, 少林与武当, 镖行天下前传之决战…, 大唐狐妖传, 轩辕大帝, 白幽灵传奇之绝命逃…, 火烧圆明园, 埋伏(1973), 绣春刀, 止杀令, 黄飞鸿6:西域雄狮, 龙族的反击, 白夜侠, 倚天屠龙记之魔教教…, 天将雄师, 大罗剑侠, 杨门女将之军令如山…, 奇侠, 等到烟暖雨收, 古墓荒斋, 黑灵官, 铁锅传奇, 花漾, 鹰王, 皇上命我来选妃, 镖行天下前传之终极…, 绣春刀修罗战场 , 维京:王者之战]
list1: ['http://dianying.2345.com/detail/148874.html', 'http://dianying.2345.com/detail/35077.html', 'http://dianying.2345.com/detail/201821.html', 'http://dianying.2345.com/detail/59747.html', 'http://dianying.2345.com/detail/199282.html', 'http://dianying.2345.com/detail/39273.html', 'http://dianying.2345.com/detail/202433.html', 'http://dianying.2345.com/detail/30550.html', 'http://dianying.2345.com/detail/190993.html', 'http://dianying.2345.com/detail/19317.html', 'http://dianying.2345.com/detail/198268.html', 'http://dianying.2345.com/detail/164786.html', 'http://dianying.2345.com/detail/141359.html', 'http://dianying.2345.com/detail/21034.html', 'http://dianying.2345.com/detail/190410.html', 'http://dianying.2345.com/detail/120632.html', 'http://dianying.2345.com/detail/84172.html', 'http://dianying.2345.com/detail/21898.html', 'http://dianying.2345.com/detail/200132.html', 'http://dianying.2345.com/detail/197808.html', 'http://dianying.2345.com/detail/323.html', 'http://dianying.2345.com/detail/116829.html', 'http://dianying.2345.com/detail/50331.html', 'http://dianying.2345.com/detail/36044.html', 'http://dianying.2345.com/detail/165827.html', 'http://dianying.2345.com/detail/202024.html', 'http://dianying.2345.com/detail/31845.html', 'http://dianying.2345.com/detail/50332.html', 'http://dianying.2345.com/detail/200206.html', 'http://dianying.2345.com/detail/65349.html', 'http://dianying.2345.com/detail/30492.html', 'http://dianying.2345.com/detail/198270.html', 'http://dianying.2345.com/detail/19263.html', 'http://dianying.2345.com/detail/165826.html', 'http://dianying.2345.com/detail/196850.html']
list2: ['王朝的女人杨贵妃', '龙门飞甲', '开封降魔记', '黄飞鸿1:壮志凌云', '神谕通天', '笑傲江湖3:东方不败…', '封魔传', '恶虎村', '少林与武当', '镖行天下前传之决战…', '大唐狐妖传', '轩辕大帝', '白幽灵传奇之绝命逃…', '火烧圆明园', '埋伏(1973)', '绣春刀', '止杀令', '黄飞鸿6:西域雄狮', '龙族的反击', '白夜侠', '倚天屠龙记之魔教教…', '天将雄师', '大罗剑侠', '杨门女将之军令如山…', '奇侠', '等到烟暖雨收', '古墓荒斋', '黑灵官', '铁锅传奇', '花漾', '鹰王', '皇上命我来选妃', '镖行天下前传之终极…', '绣春刀修罗战场 ', '维京:王者之战']
pycharm代码图片示例如下:
检查网址的电影信息图片
保存到本机的EXCEL表格图片
相关推荐
- JPA实体类注解,看这篇就全会了
-
基本注解@Entity标注于实体类声明语句之前,指出该Java类为实体类,将映射到指定的数据库表。name(可选):实体名称。缺省为实体类的非限定名称。该名称用于引用查询中的实体。不与@Tab...
- Dify教程02 - Dify+Deepseek零代码赋能,普通人也能开发AI应用
-
开始今天的教程之前,先解决昨天遇到的一个问题,docker安装Dify的时候有个报错,进入Dify面板的时候会出现“InternalServerError”的提示,log日志报错:S3_USE_A...
- 用离散标记重塑人体姿态:VQ-VAE实现关键点组合关系编码
-
在人体姿态估计领域,传统方法通常将关键点作为基本处理单元,这些关键点在人体骨架结构上代表关节位置(如肘部、膝盖和头部)的空间坐标。现有模型对这些关键点的预测主要采用两种范式:直接通过坐标回归或间接通过...
- B 客户端流RPC (clientstream Client Stream)
-
客户端编写一系列消息并将其发送到服务器,同样使用提供的流。一旦客户端写完消息,它就等待服务器读取消息并返回响应gRPC再次保证了单个RPC调用中的消息排序在客户端流RPC模式中,客户端会发送多个请...
- 我的模型我做主02——训练自己的大模型:简易入门指南
-
模型训练往往需要较高的配置,为了满足友友们的好奇心,这里我们不要内存,不要gpu,用最简单的方式,让大家感受一下什么是模型训练。基于你的硬件配置,我们可以设计一个完全在CPU上运行的简易模型训练方案。...
- 开源项目MessageNest打造个性化消息推送平台多种通知方式
-
今天介绍一个开源项目,MessageNest-可以打造个性化消息推送平台,整合邮件、钉钉、企业微信等多种通知方式。定制你的消息,让通知方式更灵活多样。开源地址:https://github.c...
- 使用投机规则API加快页面加载速度
-
当今的网络用户要求快速导航,从一个页面移动到另一个页面时应尽量减少延迟。投机规则应用程序接口(SpeculationRulesAPI)的出现改变了网络应用程序接口(WebAPI)领域的游戏规则。...
- JSONP安全攻防技术
-
关于JSONPJSONP全称是JSONwithPadding,是基于JSON格式的为解决跨域请求资源而产生的解决方案。它的基本原理是利用HTML的元素标签,远程调用JSON文件来实现数据传递。如果...
- 大数据Doris(六):编译 Doris遇到的问题
-
编译Doris遇到的问题一、js_generator.cc:(.text+0xfc3c):undefinedreferenceto`well_known_types_js’查找Doris...
- 网页内嵌PDF获取的办法
-
最近女王大人为了通过某认证考试,交了2000RMB,官方居然没有给线下教材资料,直接给的是在线教材,教材是PDF的但是是内嵌在网页内,可惜却没有给具体的PDF地址,无法下载,看到女王大人一点点的截图保...
- 印度女孩被邻居家客人性骚扰,父亲上门警告,反被围殴致死
-
微信的规则进行了调整希望大家看完故事多点“在看”,喜欢的话也点个分享和赞这样事儿君的推送才能继续出现在你的订阅列表里才能继续跟大家分享每个开怀大笑或拍案惊奇的好故事啦~话说只要稍微关注新闻的人,应该...
- 下周重要财经数据日程一览 (1229-0103)
-
下周焦点全球制造业PMI美国消费者信心指数美国首申失业救济人数值得注意的是,下周一希腊还将举行第三轮总统选举需要谷歌日历同步及部分智能手机(安卓,iPhone)同步日历功能的朋友请点击此链接,数据公布...
- PyTorch 深度学习实战(38):注意力机制全面解析
-
在上一篇文章中,我们探讨了分布式训练实战。本文将深入解析注意力机制的完整发展历程,从最初的Seq2Seq模型到革命性的Transformer架构。我们将使用PyTorch实现2个关键阶段的注意力机制变...
- 聊聊Spring AI的EmbeddingModel
-
序本文主要研究一下SpringAI的EmbeddingModelEmbeddingModelspring-ai-core/src/main/java/org/springframework/ai/e...
- 前端分享-少年了解过iframe么
-
iframe就像是HTML的「内嵌画布」,允许在页面中加载独立网页,如同在画布上叠加另一幅动态画卷。核心特性包括:独立上下文:每个iframe都拥有独立的DOM/CSS/JS环境(类似浏...
- 一周热门
- 最近发表
- 标签列表
-
- HTML 教程 (33)
- HTML 简介 (35)
- HTML 实例/测验 (32)
- HTML 测验 (32)
- HTML 参考手册 (28)
- JavaScript 和 HTML DOM 参考手册 (32)
- HTML 拓展阅读 (30)
- HTML中如何键入空格 (27)
- HTML常用标签 (29)
- HTML文本框样式 (31)
- HTML滚动条样式 (34)
- HTML5 浏览器支持 (33)
- HTML5 新元素 (33)
- HTML5 WebSocket (30)
- HTML5 代码规范 (32)
- HTML5 标签 (717)
- HTML5 标签 (已废弃) (75)
- HTML5电子书 (32)
- HTML5开发工具 (34)
- HTML5小游戏源码 (34)
- HTML5模板下载 (30)
- HTTP 状态消息 (33)
- HTTP 方法:GET 对比 POST (33)
- 键盘快捷键 (35)
- 标签 (226)