猫眼电影票房爬取到MySQL中_爬取猫眼电影top100,request、beautifulsoup运用

article/2025/11/10 5:15:03

IveiQj.jpg

这是第三篇爬虫实战,运用request请求,beautifulsoup解析,mysql储存。

如果你正在学习爬虫,本文是比较好的选择,建议在学习的时候打开猫眼电影top100进行标签的选择,具体分析步骤就省略啦,具体的方法可看我以前的总结。

练习猫眼top100是为了复习request和beautifulsoup以及sql中表的创建、字段类型的设置。好了附上源代码

import requests

from bs4 import BeautifulSoup

from requests.exceptions import RequestException

headers = {

'user-agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"}

def get_page_index(url):

try:

respones = requests.get(url, headers=headers) # get请求

if respones.status_code == 200:

return respones.text

return None

except RequestException:

print("请求有错误")

return None

def parse_one_page(html):

soup = BeautifulSoup(html, 'lxml')

board_wrapper = soup.find_all('dl', class_='board-wrapper')[0]

board_index = board_wrapper.find_all('dd')

for link in board_index:

title = link.find_all('p', class_='name')[0].text

board_index = link.find_all('i')[0].text

star = link.find_all('p', class_='star')[0].text.strip()[3:]

releasetime = link.find_all('p', class_='releasetime')[0].text.strip()[5:]

score = link.find_all('p', class_='score')[0].text

print(board_index, title, star, releasetime, score)

def main():

t = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]

urls = ['https://maoyan.com/board/4?offset={}'.format(i) for i in t]

for url in urls:

html = get_page_index(url)

parse_one_page(html)

if __name__ == "__main__":

main()

爬取内容如下:

b80a15860aa4c1403cf0642e159fd6d9.png

c6438d67ab15811ce91eeb97138d8014.png

0c8cb1a9e2f96532363342e731ae7ae6.png

24b536a79d843f1928dbd1f1f7594c65.png

存入数据库

存入数据库01:新建表

ALTER TABLE maoyantop100 CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

create table maoyantop100

(board_index int not null,

title varchar(20) not null,

star varchar(50) not null,

releasetime varchar(50) not null,

score float not null);

存入数据库02

import pymysql

import requests

import json

from bs4 import BeautifulSoup

from requests.exceptions import RequestException

headers = {

'user-agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"}

def get_page_index(url):

try:

respones = requests.get(url, headers=headers) # get请求

if respones.status_code == 200:

return respones.text

return None

except RequestException:

print("请求有错误")

return None

def parse_one_page(html):

soup = BeautifulSoup(html, 'lxml')

board_wrapper = soup.find_all('dl', class_='board-wrapper')[0]

board_index = board_wrapper.find_all('dd')

for link in board_index:

title = link.find_all('p', class_='name')[0].text

board_index = link.find_all('i')[0].text

star = link.find_all('p', class_='star')[0].text.strip()[3:]

releasetime = link.find_all('p', class_='releasetime')[0].text.strip()[5:]

score = link.find_all('p', class_='score')[0].text

return board_index, title, star, releasetime, score

def save_to_mysql(board_index,title,star, releasetime,score):

cur = conn.cursor() #用来获得python执行Mysql命令的方法,操作游标。cur = conn.sursor才是真的执行

insert_data = "INSERT INTO maoyantop100(board_index,title,star, releasetime,score)" "VALUES(%s,%s,%s,%s,%s)"

val = (board_index,title,star, releasetime,score)

cur.execute(insert_data, val)

conn.commit()

conn=pymysql.connect(host="localhost",user="root", password='180****3940',db='58yuesao',port=3306, charset="utf8")

def main():

t = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]

urls = ['https://maoyan.com/board/4?offset={}'.format(i) for i in t]

for url in urls:

html = get_page_index(url)

board_index, title, star, releasetime, score = parse_one_page(html)

save_to_mysql(board_index, title, star, releasetime, score)

if __name__ == "__main__":

main()

fc5c136a7db505146499f5fd9b4c571c.png 存入数据库

本文存在一个小bug,在存入数据库时很崩溃,只爬取了每页的第一条信息。

我也不知道为什么,没存入数据库时爬取内容是完整的,存入之后就…………解决后会更新到本文。

作者:夜希辰


http://chatgpt.dhexx.cn/article/e7qw53xJ.shtml

相关文章

python 抢票代码 猫眼演出_Python爬虫-猫眼电影排行

爬虫的目标 爬取猫眼电影TOP100的电影名称,时间,评分,图片等信息 抓取分析 查看网页源代码,找到对应的目标信息,发现一部电影对应的源代码是一个dd节点 抓取首页 为了方便,这里先抓取第一页的内容,运行之后,可以查看到网页的源代码,之后需要对页面进行解析。 import re…

flask+猫眼电影票房预测和电影推荐

flask猫眼电影票房预测和电影推荐,此系统有详细的录屏,下面只是部分截图,需要看完整录屏联系博主 系统开发语言python,框架为flask,数据库mysql,分为爬虫和可视化分析

猫眼电影产品分析

一、前言 本文试图通过对猫眼电影的版本迭代历程分析、用户分析、功能分析、运营分析以及数据表现来回答以下几个问题: (1)猫眼电影的产品定位? (2)猫眼电影产品设计及运营中有哪些亮点和策略? …

超过53亿!《长津湖》为什么这么火爆?我用 Python 来分析猫眼影评

对于这个十一黄金周的电影市场,绝对是《长津湖》的天下,目前票房就已经突破53亿,大有奋起直追《战狼2》的尽头。而且口碑也是相当的高,猫眼评分高达9.5,绝对的票房口碑双丰收啊 下面我们就通过爬取猫眼的电影评论&am…

python使用pyecharts对猫眼电影票房精美可视化分析简单仪表盘??(五个图好多个组件!!)

本次带来的是象形柱状图,玫瑰饼图,柱状图,折线图,漏斗图,并在一个网页上显示。排版也不好,其实我就是翻译下文档给大家讲解一下! 我又来了!上次做了个猫眼电影的不过瘾,又…

python爬猫眼电影影评,Python系列爬虫之爬取并简单分析猫眼电影影评

前言 今天给大家介绍利用Python爬取并简单分析猫眼电影影评。让我们愉快地开始吧~ 开发工具 Python版本:3.6.4 相关模块: requests模块; pyecharts模块; jieba模块; scipy模块; wordcloud模块; …

爬取猫眼电影,进行分析

目录 简介环境要求数据爬取爬取目标电影详情页反爬虫破解数据存储服务器搭建电影推荐 数据展示电影推荐电影评分电影票房电影类型词云 简介 这次是一次数据库实验,实验要求是了解最新的数据库,并使用!做一个简单案例使用。根据实际需要就采用…

Python—猫眼电影票房爬虫实战 轻松弄懂字体反爬!

目标 1.爬取猫眼票房信息 2.将信息保存起来(MySQL、Redis、MongoDB或者Excel等等),我们保存的是Excel 爬取网址 https://piaofang.maoyan.com/?vernormal&isid_key2d9aacd2f26d4d0dba63 分析 1.打开chrome,输入网址我们看到的效果如下 2.我们…

基于Python猫眼票房TOP100电影数据抓取

基于Python猫眼票房TOP100电影数据抓取 使用requests库抓取数据BeatifulSoup解析URL,将数据存入csv文件处理数据,生成图表 本次爬取数据使用Python语言在jupyter notebook上爬取的,并使用数据生成了一些图表。 使用requests库抓取数据 本段…

基于猫眼票房数据的可视化分析

案例背景:由于最近《哪吒之魔童降世》的火爆,最新票房已经超过49亿,使我对国内票房的整体走势有了很大兴趣,究竟49亿的票房数据,在国内是处于一个什么水平?除了票房数据,又有哪些特征因素可以用…

ardruino控制继电器_Arduino 各种模块篇-继电器

现在按照既定想法,把所有的arduino模块依次尝试一边。 链接到我的arduino Uno 与arduino mega 2560 上 mega 2560有更多的io口,而且cache也很大。所以应该更有效果。幸好可以有arduino IDE 现在比较稳定的版本官方提供的是1.0.3的。 而我用的是ubuntu库里…

【继电器模块教程基于Arduino】

继电器模块教程基于Arduino 前言介绍继电器模块继电器引出线示例:使用继电器模块和 PIR 运动传感器控制灯![在这里插入图片描述](https://img-blog.csdnimg.cn/760e865a1e6b49d4a8f3e9fe1a0a6f74.png)前言 本文介绍如何使用继电器模块通过 Arduino 控制电源电压。我们对继电器…

8路USB继电器模块 windows Linux使用

模块采用USB及串口与外界通信,方便模块与PC机、单片机连接。模块正常的工作电压为5V,并为ICSE014A(8路继电器)模块配置5V电源接口。具体参数见下表: ICSE012A ICSE013A ICSE014A 单位 备注 CC 4 2 8 模块路数 I 400 250 700 …

ardruino控制继电器_arduino控制继电器

一、arduino控制继电器 典型的继电器结构原理图如下: 继电器有一个输入回路,一般接低压电源,有一个输出回路,一般接高压电源。 输入回路中有一个电磁铁线圈,当输入回路有电流通过,电磁铁产生磁力,吸力使输出回路的触点接通,则输出回路导电(通)。 当输入回路无电流通过,…

Arduino笔记实验(初级阶段)—继电器模块

Arduino笔记实验(初级阶段)—继电器模块 文章目录 Arduino笔记实验(初级阶段)—继电器模块前言一、电路图二、继电器模块实验代码实验效果展示 三、继电器模块实验总结 前言 自学笔记,没有历史知识铺垫(省略百度部分),博主基于C代码编程,函数…

继电器模块典型电路图

当控制端电压为0时,Q1基极电压为(12-0.711.3V),改变R1的大小便可改 变基极电流,当基极电流足够大时,三极管饱合。 为了验证以上的分析,我们搭了一个电路,R1取4.7K,此时基极电流为2.4…

固态继电器和电磁继电器模块

固态继电器和电磁继电器模块 固态继电器的特点直流固态继电器和交流固态继电器电磁继电器的特点直流固态继电器模块、交流固态继电器模块和电磁继电器模块测试比较固态继电器与电磁继电器的比较 原文链接:https://www.yourcee.com/newsinfo/2924340.html 交流固态继…

【继电器模块的电路设计和分析】

一.电路图 二.电路原理分析 1.功能 此继电器电路模块可以通过把左下角LED1的阴级与控制器引脚相连(如图中与单片机P0.8引脚相连),从而可以通过控制引脚的高低电平来驱动继电器的开合。 2.驱动逻辑 当P0.8脚为低电平时,光耦PC817输…

常用继电器模块的PCB设计与实物分享

今天分享一下自己做的一块继电器模块,因为之前有用到继电器模块的原理图,索性自己画了一下,原理图如图所示: 一、原理图: 继电器模块还是比较简单的,就是通过三极管的开关作用来使电路导通,从而…

4入4出Modbus RTU继电器模块说明书

产品特点 DC7-30V; 继电器输出触点隔离; 通信波特率:2400,4800,9600,19200,38400(可以通过软件修改,默认9600); 通信协议:支持标准modbus RTU协议; 可以设置0-255个…