百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

通过python爬虫下载电影的网址和电影标题信息到excel表格中

zhezhongyun 2025-03-24 01:28 43 浏览

本代码演示去电影网址上抓取电影网址和电影名称的数据,并保存到本机到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:西域雄狮, 龙族的反击, 白夜侠, 倚天屠龙记之魔教教…, 天将雄师, 大罗剑侠, 杨门女将之军令如山…, 奇侠, 等到烟暖雨收, 古墓荒斋, 黑灵官, 铁锅传奇, 花漾, 鹰王, 皇上命我来选妃, 镖行天下前传之终极…, 绣春刀修罗战场 , 维京:王者之战]

王朝的女人杨贵妃

龙门飞甲

开封降魔记

黄飞鸿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表格图片

相关推荐

JavaScript中常用数据类型,你知道几个?

本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注!作者|慕课网精英讲师Lison这篇文章我们了解一下JavaScript中现有的八个数据类型,当然这并不是JavaScr...

踩坑:前端的z-index 之bug一二(zh1es前端)

IE6下浮动元素bug给IE6下的一个div设置元素样式,无论z-index设置多高都不起作用。这种情况发生的条件有三个:1.父标签position属性为relative;2.问题标签无posi...

两栏布局、左边定宽200px、右边自适应如何实现?

一、两栏布局(左定宽,右自动)1.float+margin即固定宽度元素设置float属性为left,自适应元素设置margin属性,margin-left应>=定宽元素宽度。举例:HTM...

前端代码需要这样优化才是一个标准的网站

  网站由前端和后端组成,前端呈现给用户。本文将告诉您前端页面代码的优化,当然仍然是基于seo优化的。  就前端而言,如果做伪静态处理,基本上是普通的html代码,正常情况下,这些页面内容是通过页面模...

网页设计如何自学(初学网页设计)

1在Dreamweaver中搭建不同的页面,需要掌握HTML的语句了,通过调整各项数值就可以制作出排版漂亮的页面,跟着就可以学习一些可视化设计软件。下面介绍网页设计如何自学,希望可以帮助到各位。Dre...

1、数值类型(数值类型有)

1.1数据类型概览MySQL的数据类型可划分为三大类别:数值类型:旨在存储数字(涵盖整型、浮点型、DECIMAL等)。字符串类型:主要用于存储文本(诸如CHAR、VARCHAR之类)。日期/...

网页设计的布局属性(网页设计的布局属性是什么)

布局属性是网站设计中必不可少的一个重要的环节,主要用来设置网页的元素的布局,主要有以下属性。1、float:该属性设置元素的浮动方式,可以取none,left和right等3个值,分别表示不浮动,浮在...

Grid网格布局一种更灵活、更强大的二维布局模型!

当涉及到网页布局时,display:flex;和display:grid;是两个常用的CSS属性,它们都允许创建不同类型的布局,但有着不同的用法和适用场景。使用flex布局的痛点当我们使...

React 项目实践——创建一个聊天机器人

作者:FredrikStrandOseberg转发链接:https://www.freecodecamp.org/news/how-to-build-a-chatbot-with-react/前言...

有趣的 CSS 数学函数(css公式)

前言之前一直在玩three.js,接触了很多数学函数,用它们创造过很多特效。于是我思考:能否在CSS中也用上这些数学函数,但发现CSS目前还没有,据说以后的新规范会纳入,估计也要等很久。然...

web开发之-前端css(5)(css前端设计)

显示控制一个元素的显示方式,我们可以使用display:block;display:inline-block;display:none;其中布局相关的还有两个很重要的属性:display:flex;和...

2024最新升级–前端内功修炼 5大主流布局系统进阶(分享)

获课:keyouit.xyz/14642/1.前端布局的重要性及发展历程前端布局是网页设计和开发的核心技能之一,它决定了页面元素如何组织和呈现。从早期的静态布局到现代的响应式布局,前端布局技术经历了...

教你轻松制作自动换行的CSS布局,轻松应对不同设备!

在网页设计中,自动换行的CSS布局是非常常见的需求,特别是在响应式设计中。它可以让网页内容自动适应不同屏幕尺寸,保证用户在不同设备上都能够获得良好的浏览体验。本文将介绍几种制作自动换行的CSS布局的方...

晨光微语!一道 CSS 面试题,伴你静享知识治愈时光

当第一缕阳光温柔地爬上窗台,窗外的鸟鸣声清脆悦耳,空气中弥漫着清新的气息。在这宁静美好的清晨与上午时光,泡一杯热气腾腾的咖啡,找一个舒适的角落坐下。前端的小伙伴们,先把工作的疲惫和面试的焦虑放在一边,...

2023 年的响应式设计指南(什么是响应式设计优缺点)

大家好,我是Echa。如今,当大家考虑构建流畅的布局时,没有再写固定宽度和高度数值了。相反,小编今天构建的布局需要适用于几乎任何尺寸的设备。是不是不可思议,小编仍然看到网站遵循自适应设计模式,其中它有...