当前位置: 首页 > wzjs >正文

特别酷炫网站怎么维护网站

特别酷炫网站,怎么维护网站,网页视频制作软件,美食网站建设内容规划网站: TOP100榜 - 猫眼电影 - 一网打尽好电影 本次案例所需用到的模块 requests (发送HTTP请求) pandas(数据处理和分析 保存数据) parsel(解析HTML数据) pyecharts(数据可视化图表) pymysql(连接和操作MySQL数据库) lxml(数据解析模块) 确定爬取的内容: 电影名称 电影主演…

网站: TOP100榜 - 猫眼电影 - 一网打尽好电影
 

本次案例所需用到的模块
requests (发送HTTP请求)

pandas(数据处理和分析 保存数据)

parsel(解析HTML数据) 

pyecharts(数据可视化图表)

pymysql(连接和操作MySQL数据库)

lxml(数据解析模块)


确定爬取的内容:

  1. 电影名称

  2. 电影主演

  3. 上映时间

  4. 评分

分析页面:

确认是静态数据还是动态数据
右击打开网页源代码   快捷键Ctrl+F 打开搜索框 搜索需要爬取的数据

可以发现 此数据为静态数据  即所需要的数据都在网页上面

爬取步骤:

一.发送请求 模拟浏览器向服务器发送请求

二. 解析数据   从网页中提取数据

三. 保存数据  将爬取到的数据保存为本地文件

OK 我们开始写代码
将浏览器的url地址复制 构建请求头参数
此网站需要登陆 才能拿到数据 请求体中一般包含三个数据 UA(浏览器的基本信息) referer(就是防盗链 即当前页面通过哪个页面跳转过来的)  cookie(用户的一些基本信息)

# 导包
import requestsurl = 'https://www.maoyan.com/board/4?timeStamp=1741780786427&channelId=40011&index=2&signKey=30a132dd14a76c19cfd2759ba27adc28&sVersion=1&webdriver=false'headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0','referer':'https://www.maoyan.com/','cookie':'你的cookie'}
resp = requests.get(url,headers=headers)
print(resp.text)

打印我们从浏览器爬取下来的信息
Ctrl+F 快捷键 搜索确认 数据在返回的信息中 

第二步 解析数据

打开开发者工具中的元素 用左上角的小箭头去查看页面的结构

定位元素 拿到对应的class属性值  采取parserl模块里面的css 的来提取数据

我们可以看到  爬取下来的内容中 有空格 缩进
处理办法: 转换成字符串类型的格式 然后使用strip()方法 去掉空格 replace 替换方法去除不要的文字  只保留主演名字

movie_time = li.css('.releasetime::text').get().replace('上映时间:', '')
# 上映时间也一样 只保留时间

最后 这个评分是分开的  需要做个字符串的拼接

getall() 拿到所有满足条件的class属性为score 下面i 标签中的文本  其返回的是个列表 通过对列表取值 就可以拿到这两个分开的评分  最后拼接起来 输出打印莫问题

movie_s = li.css('.score i::text').getall()[0]
movie_ore = li.css('.score i::text').getall()[-1]
movie_score = movie_s + movie_ore

所有的信息提取完毕 接下来我们保存数据

三.保存数据

将数据存储在字典中  在外面定义一个空列表  最后将字典添加到列表中

data = []dit = {'电影名': movie_name,'主演': movie_actor,'上映时间': movie_time,'评分': movie_score
}
data.append(dit)

最后听过pandas 保存数据  

# 传入我们的列表 设置索引列为false 即不生成额外的一列索引
pd.DataFrame(data).to_excel('Top100.xlsx', index=False)

本次爬虫板块的代码如下  还有保存到数据库的就不讲解了 详细的话看我之前的文章
多页爬取的话 分析几页的url地址可得  多了个offset参数 每页间隔10 后续通过for循环遍历即可 

import requests
import parsel
import pandas as pd
import pymysql# 建立连接
connect = pymysql.connect(user='root',password="112233",host='localhost',database='douban', )
# 拿游标
cursor = connect.cursor()# 此模块集成了css  xpath re正则三种解析数据的模块
data = []
for page in range(0, 101, 10):url = f'https://www.maoyan.com/board/4?timeStamp=1741780786427&channelId=40011&index=2&signKey=30a132dd14a76c19cfd2759ba27adc28&sVersion=1&webdriver=false&offset={page}'headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0','referer':'https://www.maoyan.com/','cookie':'你的cookie'}resp = requests.get(url, headers=headers)selector = parsel.Selector(resp.text)lis = selector.css('.board-wrapper dd')for li in lis:movie_name = li.css('.name a::attr(title)').get()movie_actor = li.css('.star::text').get().strip().replace('主演:', '')movie_time = li.css('.releasetime::text').get().replace('上映时间:', '')movie_s = li.css('.score i::text').getall()[0]movie_ore = li.css('.score i::text').getall()[-1]movie_score = movie_s + movie_oredit = {'电影名': movie_name,'主演': movie_actor,'上映时间': movie_time,'评分': movie_score}data.append(dit)# pd.DataFrame(data).to_excel('Top100.xlsx', index=False)#     准备sql语句sql = 'insert into top100 values (%s,%s,%s,%s)'cursor.executemany(sql,[(movie_name,movie_actor,movie_time,movie_score)])# 提交事务connect.commit()

爬取的数据如下: 

 接着我们清洗数据  将excel文件中上映时间的字段 中的国家地名去掉  只保留纯日期数值
至于如何查看 数据的一些信息 语法就不在这里介绍了 可以看之前的文章

# 导包 读取文件
import pandas as pddf = pd.read_excel('Top100.xlsx', index_col=False)
# 将上映时间这一列的数据中的日期提取出来 重新赋值给上映时间这一列
df['上映时间'] = df['上映时间'].str.extract(r'(\d{4}-\d{2}-\d{2})')# 去除空数据
# 将数据中的空数据去除  在原有的数据上
df.dropna(inplace=True)# 将处理好的数据保存到新的文件中  不生成索引列
df.to_excel('new_Top.xlsx', index=False)

# 导包
from pyecharts.charts import Line
from pyecharts import options as opts# 生成柱状图
c = (Line()# 添加x轴 数据 将电影名这一列的数据转换成列表.add_xaxis(df['电影名'].tolist())# 添加y轴 设置y轴名称  同样将数据转换成列表.add_yaxis('评分', df['评分'].tolist())# 设置 配置项.set_global_opts(# 标题与副标题的设置title_opts=opts.TitleOpts(title="Top100电影评分", subtitle='副标题'),# x轴相关的设置  设置x轴的数据 向右旋转45 -45 为逆时针xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=45)))# 列的设置 不显示每一列上面的数据.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
)
# 生成html 文件
c.render('Top100.html')

http://www.dtcms.com/wzjs/564641.html

相关文章:

  • 大连手机网站制作网站建设四网合一
  • 中国建设银行青海分行网站免费策划方案平台
  • 做货代用的网站哪里有做网站优化的公司
  • 凯里市住房和城乡建设局网站做期货到哪个网站看新闻
  • 做的网站怎样打开速度快企业网站的一般要素包括
  • wordpress pc站m站微信网站怎样做
  • 网站做301将重定向到新域名wordpress做线下交易
  • 网站开发平台目录自适应平台网站
  • 外贸网站建站系统wordpress样式丢失
  • 目前网站开发怎么兼顾手机外贸推广主要做什么
  • 标准论坛网站建设上海网站建设市场分析
  • 跳转网站怎么做深圳比较好的vi设计公司
  • 织梦技校招生网网站模板整站源码上市公司的信息网站
  • 韶关网站建设公司门户网站是
  • 网站域名是不是网址营口规划建设局网站
  • 前端网站论文广东深圳天气预报
  • 餐饮网站程序购物国外网站的建立
  • 加快建设企业门户网站建网站建设费用明细报告
  • 网站建设教程参加苏州久远网络网站的建站流程
  • 效果图网站有哪些优秀电商设计网站
  • 2345浏览器官方网站新乐市做网站
  • 宁波网站排名优化报价flash网站带后台
  • 网站产品管理模块襄阳做网站比较有实力的公司
  • 市场上网站开发价格招聘网站可以做两份简历吗
  • 网站建设需要哪些信息商城网站建设好么
  • 网站安装部署网络营销的四大要素
  • 只做传统嫁衣网站泸州高端网站建设公司
  • 网站建设的英语怎么说重庆网站建设最大
  • 太原网站建设公司排名不相关的网站做单项链接可以吗
  • 免费注册域名网站知乎wordpress修改地址