【RPA开发】Beautiful Soup 使用详解

news/2024/5/20 8:04:07 标签: rpa, python, css, 爬虫

爬虫时通过 requests.get 方法获得 html 源代码后,通常需要从源代码中提取关键信息,这有多种方式,比如使用正则表达式匹配,也可通过 python 的第三方库 Beautiful Soup 实现定位提取关键信息,类似的库还有 lxml 第三方库中的 etree 模块。

目录

1 快速开始

1.1 Beautiful Soup 介绍

1.2 基础信息提取

① HTML 代码

② 基础方法汇总

③ find 简单使用

1.3 解析器介绍

2 find 使用

2.1 标签/tag名定位

2.2 标签+属性定位

2.3 标签+文本值定位

2.4 正则表达式

2.5 find().find()

3 select 使用

css%E5%9F%BA%E6%9C%AC%E5%B1%9E%E6%80%A7%E5%AE%9A%E4%BD%8D-toc" style="margin-left:40px;">3.1 css基本属性定位

css%E5%85%B6%E4%BB%96%E5%B1%9E%E6%80%A7%E5%AE%9A%E4%BD%8D-toc" style="margin-left:40px;">3.2 css其他属性定位

css%E6%A0%87%E7%AD%BE%E7%BB%93%E5%90%88%E5%85%B6%E4%BB%96%E5%B1%9E%E6%80%A7%E5%AE%9A%E4%BD%8D-toc" style="margin-left:40px;">3.3 css标签结合其他属性定位

css%E5%B1%82%E7%BA%A7%E5%AE%9A%E4%BD%8D-toc" style="margin-left:40px;">3.4 css层级定位

css%E7%B4%A2%E5%BC%95%E5%AE%9A%E4%BD%8D-toc" style="margin-left:40px;">3.5 css索引定位

css%E6%A8%A1%E7%B3%8A%E5%8C%B9%E9%85%8D-toc" style="margin-left:40px;">3.6 css模糊匹配

4 实战--猫眼榜单

4.1 使用 requests 请求页面

4.2 分析页面及元素定位


1 快速开始

1.1 Beautiful Soup 介绍

简单来说,Beautiful Soup 是 Python 用于解析 HTML 和 XML 文件的第三方库,可以从 HTML 和 XML 文件中提取数据。

  • 官方网址:Beautiful Soup Documentation
  • 中文文档:Beautiful Soup 中文文档
  • 安装:pip install beautifulsoup4

Beautiful Soup 3 目前已经停止开发,官方支持 Beautiful Soup 4,并且将其移植到 BS4,也就是说我们需要 import bs4,本文 beautifulsoup4 版本 = 4.12.2。

Beautiful Soup提供了多种搜索方式,可以轻松定位所需的元素。 它还可以修复已损坏的HTML和XML文件,使其更易于理解和处理。

1.2 基础信息提取

① HTML 代码

下面是一段官方提供的 html 代码(爱丽丝梦游仙境的一段内容):

<html><head><title>The Dormouse's story</title></head>
<body>
<p class="title"><b>The Dormouse's story</b></p>

<p class="story">Once upon a time there were three little sisters; and their names were
<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,
<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and
<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;
and they lived at the bottom of a well.</p>

<p class="story">...</p>

页面效果如下,右键选择“检查”即可查看其 html 规范格式 👇

 该 html 包含了诸多元素,比如标题元素(<p class="title"><b>The Dormouse's story</b></p>),其中 p 为其 tag-标签,class 是其属性,“The Dormouse's story”是其文本,其余元素类似,我们正是通过标签和相关属性对各元素进行定位。

② 基础方法汇总

python">from bs4 import BeautifulSoup

html_doc = """
<html><head><title>The Dormouse's story</title></head>
<body>
<p class="title"><b>The Dormouse's story</b></p>

<p class="story">Once upon a time there were three little sisters; and their names were
<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,
<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and
<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;
and they lived at the bottom of a well.</p>

<p class="story">...</p>
"""

#默认解析html,若想要解析xml,需要把lxml换为xml
soup = BeautifulSoup(html_doc, 'lxml')

print(soup.title) #html的标题元素
# <title>The Dormouse's story</title>

print(soup.title.name) #html的标题元素标签名
# title

print(soup.title.string) #html的标题文本
# The Dormouse's story

print(soup.title.parent.name)#标题元素的父元素的标签名
# head

print(soup.p) #html中标签名为p的第一个元素
# <p class="title"><b>The Dormouse's story</b></p>

print(soup.p['class']) #该元素的class属性值
# ['title']

print(soup.a) #html中标签名为a的第一个元素
# <a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>

print(soup.get_text()) #从文档中获取所有文字内容

③ find 简单使用

python">print(soup.find_all('a'))  #找到所有标签名为a的元素
# [<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>,
#  <a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>,
#  <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]

print(soup.find(id="link3")) #找到id属性为link3的元素
# <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>

for link in soup.find_all('a'): #从文档中找到所有<a>标签的链接
    print(link.get('href'))
    # http://example.com/elsie
    # http://example.com/lacie
    # http://example.com/tillie

1.3 解析器介绍

Beautiful Soup 可以使用不同的解析器,例如Python的内置HTML解析器,标准的xml解析器和第三方解析器(如lxml)。下表列出了主要的解析器,以及它们的优缺点:

官方推荐使用 lxml 作为解析器(pip install lxml),因为效率更高,在 Python2.7.3 之前的版本和 Python3中3.2.2 之前的版本,必须安装 lxml 或 html5lib ,因为那些 Python 版本的标准库中内置的 HTML 解析方法不够稳定。

2 find 使用

为了使用Beautiful Soup解析网页,需要先根据网页的结构找到所需的关键信息。在此过程中,常用的两个函数是find和find_all,通过它们可以找到并分析网页结构,以获取所需信息。

find_all() 方法将返回文档中符合条件的所有元素,返回结果是值包含一个元素的列表;find() 方法直接返回结果(元素)。find_all() 方法没有找到目标是返回空列表,find() 方法找不到目标时返回 None。

2.1 标签/tag名定位

比如文档中只有一个 <body> 标签,那么使用 find_all() 方法来查找<body>标签就不太合适,使用 find_all 方法并设置 limit=1 参数不如直接使用 find() 方法。

语法:

  • soup.find_all("标签名")
  • soup.find_all("标签名", limit = 数量) 
  • soup.find_all(name = "标签名", limit = 数量) 
  • soup.find("标签名")
  • soup.find(name = "标签名")

下面两行代码是等价的:

python">soup.find_all('title', limit=1) # 标签名/tag名为title
# [<title>The Dormouse's story</title>]

soup.find('title')
# <title>The Dormouse's story</title>

2.2 标签+属性定位

标签名很容易重复,因此需要搭配属性名来进行准确定位!下边两行代码作用一致,name 指的就是标签名,千万不要和 name 属性搞混了~

语法:

  • soup.find_all("标签名", attrs = {'属性':'属性值'})
  • soup.find("标签名", attrs = {'属性':'属性值'})

其他属性比如 id、name、href 等等,都可以放到 attrs 的字典里去!

python">#2标签/tag名定位
soup.find("p",attrs={'class':'title'}) #标签名为p,class属性值为title
soup.find(name="p",attrs={'class':'title'})
# <p class="title"><b>The Dormouse's story</b></p>

2.3 标签+文本值定位

同上,不过文本值需要用到 string 这个入参,text 目前已被 deprecated,官方推荐 string。

语法:

  • soup.find_all("标签名", string= "文本")
  • soup.find("标签名", string= "文本")
python">#3标签+文本值定位
soup.find("a",string="Elsie")
#<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>

2.4 正则表达式

find 和 find_all 同样支持正则表达式的查找,如找出标签名中含有 title 或者是 p 的元素。

python">#4正则表达式
tags = soup.find_all(name =re.compile('title|a'))
for i in tags:
    print(i)
    print('--------------')

控制台输出:
<head><title>The Dormouse's story</title></head>
--------------
<title>The Dormouse's story</title>
--------------
<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>
--------------
<a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>
--------------
<a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>
--------------

2.5 find().find()

find() 定位到的就是元素,该元素依然可能存在子元素,那么就可以继续使用 find() 来进行定位。

python">from bs4 import BeautifulSoup

html_doc = """
<html>
    <head>
        <title>The Dormouse's story</title>
    </head>
<body>
<p class="title">
    <b>The Dormouse's story</b>
</p>
<p class="story">Once upon a time there were three little sisters; and their names were
    <a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,
    <a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and
    <a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;
    and they lived at the bottom of a well.
</p>
<p class="story">...</p>
"""

soup = BeautifulSoup(html_doc, 'lxml')

story = soup.find('p',attrs={"class":"story"})
Elsie = story.find('a',attrs={"id":"link1"})
#<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>

3 select 使用

select 和 select_one 类似于 find 和find_all,都是用来进行元素定位,不过它的选取规则依赖于 css 选择器。

css%E5%9F%BA%E6%9C%AC%E5%B1%9E%E6%80%A7%E5%AE%9A%E4%BD%8D">3.1 css基本属性定位

css选择器也支持基本属性(tag、id、class)定位方式。

语法:

  • soup.select("标签名") #css+id定位
  • soup.select("#id值") #css+class定位
  • soup.select(".class值") #css+标签定位
python">#1.css基本属性定位
soup.select("title")
#[<title>The Dormouse's story</title>]
soup.select("#link1")
#[<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>]
soup.select(".title")
#[<p class="title"><b>The Dormouse's story</b></p>]

css%E5%85%B6%E4%BB%96%E5%B1%9E%E6%80%A7%E5%AE%9A%E4%BD%8D">3.2 css其他属性定位

另外一些非基础元素也可以通过以下形式进行辅助定位~

语法:

  • soup.select('[属性名=属性值]') #css+其他属性
  • soup.select('[属性名1=属性值1][属性名2=属性值2]') #css+多个其他属性
python">#2.css其他属性定位
soup.select('[href="http://example.com/elsie"]')
#[<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>]
soup.select('[class="sister"][id="link3"]')
#[<a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]

css%E6%A0%87%E7%AD%BE%E7%BB%93%E5%90%88%E5%85%B6%E4%BB%96%E5%B1%9E%E6%80%A7%E5%AE%9A%E4%BD%8D">3.3 css标签结合其他属性定位

我们也可以通过标签+属性来进行定位

语法:

  • soup.select('标签名#id值') #标签+id属性定位
  • soup.select('标签名.class值') #标签+class属性定位
  • soup.select('标签名[属性名=属性值]') #标签+其他属性定位
python">#3.css标签结合其他属性定位
soup.select('a#link1')
#[<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>]
soup.select('p.title')
#[<p class="title"><b>The Dormouse's story</b></p>]
soup.select('a[id=link1]')
#[<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>]

css%E5%B1%82%E7%BA%A7%E5%AE%9A%E4%BD%8D">3.4 css层级定位

在定位某个元素时,若无简洁标签属性可供参考,我们可以先定位到该元素的上级或上上级元素,随后通过层级关系获取该元素的位置。

语法:

  • soup.select('标签1 > 标签2') #标签2为标签1的子标签
  • soup.select('标签1 > #id值') #id值为标签1的子标签的id值,class也可
python">#4.css层级定位
soup.select('head > title')
#[<title>The Dormouse's story</title>]
soup.select('p > #link1')
#[<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>]

css%E7%B4%A2%E5%BC%95%E5%AE%9A%E4%BD%8D">3.5 css索引定位

如图,该元素下存在3个a标签,像这种有多个相同标签名的元素,可以使用索引定位,通过索引来指定具体哪个 a 标签的元素。

注:与python列表索引的概念不同,此处的标签索引是从1开始;python列表的索引是从0开始。

语法:

  • soup.select('标签:nth-child(n)') #正着数第n个标签
  • soup.select('标签:nth-last-child(n)') #倒着数第n个标签
python">#5.css索引定位
soup.select('a.sister:nth-child(1)') #a标签,类名为sister
#[<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>]
soup.select('a.sister:nth-last-child(2)')
#[<a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>]

css%E6%A8%A1%E7%B3%8A%E5%8C%B9%E9%85%8D">3.6 css模糊匹配

有时会遇到属性值过长的情况,此时我们可以通过模糊匹配来处理,只需要属性值的部分内容即可。

语法:

  • soup.select("[属性名~='部分属性值']") #1.属性值由多个空格隔开,匹配其中一个值的方法
  • soup.select("[属性名^='属性值开头']") #2.匹配字符串开头
  • soup.select("[属性名$='属性值结尾']") #3.匹配字符串结尾
python">from bs4 import BeautifulSoup

html_doc = """
<html>
    <head>
        <title>The Dormouse's story</title>
    </head>
<body>
<p class="title">
    <b>The Dormouse's story</b>
</p>
<p class="story">Once upon a time there were three little sisters; and their names were
    <a href="http://example.com/elsie" class="sister test" id="link1">Elsie</a>,
    <a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and
    <a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;
    and they lived at the bottom of a well.
</p>
<p class="story">...</p>
"""

soup = BeautifulSoup(html_doc, 'lxml')

#5.css模糊匹配
print(soup.select("[class~='test']") )
#[<a class="sister test" href="http://example.com/elsie" id="link1">Elsie</a>]
print(soup.select("[class^='titl']"))
#[<p class="title"><b>The Dormouse's story</b></p>]
print(soup.select("[id$='ink3']"))
#[<a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]

4 实战--猫眼榜单

那么在项目中如何使用 Beautiful Soup 对爬到的网页进行分析并提前关键的字段,本章内容将进行解答。

4.1 使用 requests 请求页面

本文针对猫眼电影榜单--热映口碑榜进行实战,该页面如下:

我们使用 requests 第三方库获取页面内容(html),requests 就不多说了,首先获取实际页面的请求头(使用浏览器的开发者工具):

 爬虫代码:

python">import requests

url = "http://maoyan.com/board/7?offset=0"
headers = {
   'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 Edg/108.0.1462.54',
   'Accept': '*/*',
   'Host': 'www.maoyan.com',
   'Connection': 'keep-alive'
}

resp = requests.get(url,headers=headers)

4.2 分析页面及元素定位

右键检查使用开发者工具,可以看到标签名为dl的元素(<dl class="board-wrapper">)dl中包含了10个的dd,每个dd里面包含着每一部电影的各种信息,解析dd就能解析出我们需要的属性,因此我们先定位到该元素。

python">#使用BeautifulSoup进行分析
maoyan_soup = BeautifulSoup(resp.text, "lxml")
wrapper_tag = maoyan_soup.select_one('dl.board-wrapper')
dd_tags = board_wrapper_tag.select('dd')

我们需要采集每条电影记录的排名、电影名、主演和上映时间,各信息对应的元素信息如上图所示,本文我使用 css 选择器进行定位,我将他们放在了 dic 里边。

python">css_items = {
    'index': 'i.board-index',
    'name': 'p.name a',
    'star': 'p.star',
    'time': 'p.releasetime'
}

完整代码如下:

python">import requests
from bs4 import BeautifulSoup

url = "http://maoyan.com/board/7?offset={}"
headers = {
   'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 Edg/108.0.1462.54',
   'Accept': '*/*',
   'Host': 'www.maoyan.com',
   'Connection': 'keep-alive',
   'Cookie': '__mta=255104311.1682493547126.1682498459882.1682498495101.29; uuid_n_v=v1; uuid=A1063700E40211EDB6A41DA4355E52AD975693BE63D7498981D8E398A28DDC69; _csrf=9550a5fdc0d1595e1cd735b8a493bf15d4a988a78c1c3e57a05ccc904bb1e703; _lx_utm=utm_source=bing&utm_medium=organic; _lxsdk_cuid=187bc6e211ac8-026291e2eaf349-7e57547c-e1000-187bc6e211ac8; _lxsdk=A1063700E40211EDB6A41DA4355E52AD975693BE63D7498981D8E398A28DDC69; Hm_lvt_703e94591e87be68cc8da0da7cbd0be2=1682493547; __mta=255104311.1682493547126.1682493552847.1682493564446.4; Hm_lpvt_703e94591e87be68cc8da0da7cbd0be2=1682498495; _lxsdk_s=187bcb90647-db6-e4a-a90||10'
}
css_items = {
    'index': 'i.board-index',
    'name': 'p.name a',
    'star': 'p.star',
    'time': 'p.releasetime'
}
data_list = []

resp = requests.get(url.format(0 * 10),headers=headers)
maoyan_soup = BeautifulSoup(resp, "lxml")

wrapper_tag = maoyan_soup.select_one('dl.board-wrapper')
if wrapper_tag is not None:
    dd_tags = wrapper_tag.select('dd')
    index, name, star, time ='', '', '', ''

    for dd in dd_tags:
        index = dd.select_one(css_items.get('index')).text
        name = dd.select_one(css_items.get('name')).text
        star = dd.select_one(css_items.get('star')).text.strip()
        time = dd.select_one(css_items.get('time')).text
        data = dict(index=index, name=name, star=star, time=time) #json格式
        data_list.append(data)
print(data_list)

考虑到猫眼会进行反扒,下边也提供了html直接供大家进行测试:

<!DOCTYPE html>

<!--[if IE 8]><html class="ie8"><![endif]-->
<!--[if IE 9]><html class="ie9"><![endif]-->
<!--[if gt IE 9]><!--><html><!--<![endif]-->
<head>
  <title>热映口碑榜 - 猫眼电影 - 一网打尽好电影</title>

  <link rel="dns-prefetch" href="//p0.meituan.net"  />
  <link rel="dns-prefetch" href="//p1.meituan.net"  />
  <link rel="dns-prefetch" href="//ms0.meituan.net" />
  <link rel="dns-prefetch" href="//ms1.meituan.net" />
  <link rel="dns-prefetch" href="//lx.meituan.net"/>
  <link rel="dns-prefetch" href="//lx1.meituan.net"/>
  <link rel="dns-prefetch" href="//plx.meituan.com"/>


  <meta charset="utf-8">
  <meta name="keywords" content="猫眼电影,电影排行榜,热映口碑榜,最受期待榜,国内票房榜,北美票房榜,猫眼TOP100">
  <meta name="description" content="猫眼电影热门榜单,包括热映口碑榜,最受期待榜,国内票房榜,北美票房榜,猫眼TOP100,多维度为用户进行选片决策">
  <meta http-equiv="cleartype" content="yes" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <meta name="renderer" content="webkit" />

  <meta name="HandheldFriendly" content="true" />
  <meta name="format-detection" content="email=no" />
  <meta name="format-detection" content="telephone=no" />
  <meta name="viewport" content="width=device-width, initial-scale=1">


  <script>"use strict";!function(){var i=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"_Owl_",n=window;n[i]||(n[i]={isRunning:!1,isReady:!1,preTasks:[],dataSet:[],use:function(i,t){this.isReady&&n.Owl&&n.Owl[i](t),this.preTasks.push({api:i,data:[t]})},add:function(i){this.dataSet.push(i)},run:function(){var t=this;if(!this.isRunning){this.isRunning=!0;var i=n.onerror;n.onerror=function(){this.isReady||this.add({type:"jsError",data:arguments}),i&&i.apply(n,arguments)}.bind(this),(n.addEventListener||n.attachEvent)("error",function(i){t.isReady||t.add({type:"resError",data:[i]})},!0)}}},n[i].run())}();</script>
  <script>
  cid = "c_wx6zb55";
  ci = 30;
val = {"subnavId":7};    window.system = {};

  window.openPlatform = '';
  window.openPlatformSub = '';
  window.$mtsiFlag = '0';
  window.NODE_ENV = 'production';

  </script>
  <link rel="stylesheet" href="//s3plus.meituan.net/v1/mss_e2821d7f0cfe4ac1bf9202ecf9590e67/cdn-prod/file:5788b470/common.2a536dd1.css"/>
<link rel="stylesheet" href="//s3plus.meituan.net/v1/mss_e2821d7f0cfe4ac1bf9202ecf9590e67/cdn-prod/file:5788b470/board-index.92a06072.css"/>
  <script crossorigin="anonymous" src="//s3plus.meituan.net/v1/mss_e2821d7f0cfe4ac1bf9202ecf9590e67/cdn-prod/file:5788b470/stat.b4e55d45.js"></script>
  <script>if(window.devicePixelRatio >= 2) { document.write('<link rel="stylesheet" href="//s3plus.meituan.net/v1/mss_e2821d7f0cfe4ac1bf9202ecf9590e67/cdn-prod/file:5788b470/image-2x.8ba7074d.css"/>') }</script>
  <style>
    @font-face{font-family: "mtsi-font";src:url("//s3plus.meituan.net/v1/mss_73a511b8f91f43d0bdae92584ea6330b/font/2a70c44b.eot");src:url("//s3plus.meituan.net/v1/mss_73a511b8f91f43d0bdae92584ea6330b/font/2a70c44b.eot?#iefix") format("embedded-opentype"),url("//s3plus.meituan.net/v1/mss_73a511b8f91f43d0bdae92584ea6330b/font/2a70c44b.woff");}
    .stonefont {
      font-family: mtsi-font;
    }
  </style>
  <script>
  var _hmt = _hmt || [];
  (function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?703e94591e87be68cc8da0da7cbd0be2";
  var s = document.getElementsByTagName("script")[0];
  s.parentNode.insertBefore(hm, s);
  })();
  </script>
</head>
<body>


<div class="header">
  <div class="header-inner">
          <a href="//www.maoyan.com" class="logo" data-act="icon-click">猫眼电影</a>
        <div class="city-container" data-val="{currentcityid:30 }">
            <div class="city-selected">
                <div class="city-name">
                  深圳
                  <span class="caret"></span>
                </div>
            </div>
            <div class="city-list" data-val="{ localcityid: 30 }">
                <div class="city-list-header">定位城市:<a class="js-geo-city" data-ci="30">深圳</a></div>
            </div>
        </div>


        <div class="nav">
            <div><a href="/" data-act="home-click"  >首页</a></div>
            <div><a href="/films" data-act="movies-click" >电影</a></div>
            <div><a href="/cinemas" data-act="cinemas-click" >影院</a></div>
            <div><a href="http://www.gewara.com">演出</a></div>
            <!-- <div><a href="/dramas" data-act="TVdramas-click" >电视剧</a></div> -->
            <div><a href="/board" data-act="board-click"  class="active" >榜单</a></div>
            <div><a href="/news" data-act="hotNews-click" >热点</a></div>
            <div><a href="/edimall"  >商城</a></div>
        </div>

        <div class="user-info">
            <div class="user-avatar J-login">
              <img src="https://p0.meituan.net/movie/7dd82a16316ab32c8359debdb04396ef2897.png">
              <span class="caret"></span>
              <ul class="user-menu no-login-menu">
                <li><a href="javascript:void 0">登录</a></li>
              </ul>
            </div>
        </div>

        <form action="/query" target="_blank" class="search-form" data-actform="search-click">
            <input name="kw" class="search" type="search" maxlength="32" placeholder="找影视剧、影人、影院" autocomplete="off">
            <input class="submit" type="submit" value="">
        </form>

        <div class="app-download">
          <a href="/app" target="_blank">
            <span class="iphone-icon"></span>
            <span class="apptext">APP下载</span>
            <span class="caret"></span>
            <div class="download-icon">
                <p class="down-title">扫码下载APP</p>
                <p class='down-content'>选座更优惠</p>
            </div>
          </a>
        </div>

  </div>
</div>
<div class="header-placeholder"></div>

<div class="subnav">
  <ul class="navbar">
    <li>
      <a data-act="subnav-click" data-val="{subnavClick:7}"
          data-state-val="{subnavId:7}"
          class="active" href="javascript:void(0);"
      >热映口碑榜</a>
    </li>
    <li>
      <a data-act="subnav-click" data-val="{subnavClick:6}"
          href="/board/6"
      >最受期待榜</a>
    </li>
    <li>
      <a data-act="subnav-click" data-val="{subnavClick:1}"
          href="/board/1"
      >国内票房榜</a>
    </li>
    <li>
      <a data-act="subnav-click" data-val="{subnavClick:2}"
          href="/board/2"
      >北美票房榜</a>
    </li>
    <li>
      <a data-act="subnav-click" data-val="{subnavClick:4}"
          href="/board/4"
      >TOP100榜</a>
    </li>
  </ul>
</div>


    <div class="container" id="app" class="page-board/index" >

<div class="content">
    <div class="wrapper">
        <div class="main">
            <p class="update-time">2023-04-26<span class="has-fresh-text">已更新</span></p>
            <p class="board-content">榜单规则:将昨日国内热映的影片,按照评分从高到低排列取前10名,每天上午10点更新。相关数据来源于“猫眼专业版”及“猫眼电影库”。</p>
            <dl class="board-wrapper">
                <dd>
                        <i class="board-index board-index-1">1</i>
    <a href="/films/267" title="泰坦尼克号" class="image-link" data-act="boarditem-click" data-val="{movieId:267}">
      <img src="//s3plus.meituan.net/v1/mss_e2821d7f0cfe4ac1bf9202ecf9590e67/cdn-prod/file:5788b470/image/loading_2.e3d934bf.png" alt="" class="poster-default" />
      <img data-src="https://p0.pipi.cn/mmdb/fb73869af2a51b339e537c802afb40db7a7fe.jpg?imageView2/1/w/160/h/220" alt="泰坦尼克号" class="board-img" />
    </a>
    <div class="board-item-main">
      <div class="board-item-content">
              <div class="movie-item-info">
        <p class="name"><a href="/films/267" title="泰坦尼克号" data-act="boarditem-click" data-val="{movieId:267}">泰坦尼克号</a></p>
        <p class="star">
                主演:莱昂纳多·迪卡普里奥,凯特·温丝莱特,比利·赞恩
        </p>
<p class="releasetime">上映时间:1998-04-03</p>    </div>
    <div class="movie-item-number score-num">
<p class="score"><i class="integer">9.</i><i class="fraction">6</i></p>
    </div>

      </div>
    </div>

                </dd>
                <dd>
                        <i class="board-index board-index-2">2</i>
    <a href="/films/1383605" title="灌篮高手" class="image-link" data-act="boarditem-click" data-val="{movieId:1383605}">
      <img src="//s3plus.meituan.net/v1/mss_e2821d7f0cfe4ac1bf9202ecf9590e67/cdn-prod/file:5788b470/image/loading_2.e3d934bf.png" alt="" class="poster-default" />
      <img data-src="https://p0.pipi.cn/mmdb/fb7386bee7ac7e338fd7c316918ec78e573ba.jpg?imageView2/1/w/160/h/220" alt="灌篮高手" class="board-img" />
    </a>
    <div class="board-item-main">
      <div class="board-item-content">
              <div class="movie-item-info">
        <p class="name"><a href="/films/1383605" title="灌篮高手" data-act="boarditem-click" data-val="{movieId:1383605}">灌篮高手</a></p>
        <p class="star">
                主演:宫城良田,三井寿,流川枫
        </p>
<p class="releasetime">上映时间:2023-04-20</p>    </div>
    <div class="movie-item-number score-num">
<p class="score"><i class="integer">9.</i><i class="fraction">4</i></p>
    </div>

      </div>
    </div>

                </dd>
                <dd>
                        <i class="board-index board-index-3">3</i>
    <a href="/films/1434052" title="保你平安" class="image-link" data-act="boarditem-click" data-val="{movieId:1434052}">
      <img src="//s3plus.meituan.net/v1/mss_e2821d7f0cfe4ac1bf9202ecf9590e67/cdn-prod/file:5788b470/image/loading_2.e3d934bf.png" alt="" class="poster-default" />
      <img data-src="https://p0.pipi.cn/mmdb/fb73869a7e1807030c16bd4fd0f6434755d83.jpg?imageView2/1/w/160/h/220" alt="保你平安" class="board-img" />
    </a>
    <div class="board-item-main">
      <div class="board-item-content">
              <div class="movie-item-info">
        <p class="name"><a href="/films/1434052" title="保你平安" data-act="boarditem-click" data-val="{movieId:1434052}">保你平安</a></p>
        <p class="star">
                主演:大鹏,李雪琴,尹正
        </p>
<p class="releasetime">上映时间:2023-03-10</p>    </div>
    <div class="movie-item-number score-num">
<p class="score"><i class="integer">9.</i><i class="fraction">4</i></p>
    </div>

      </div>
    </div>

                </dd>
                <dd>
                        <i class="board-index board-index-4">4</i>
    <a href="/films/1203724" title="忠犬八公" class="image-link" data-act="boarditem-click" data-val="{movieId:1203724}">
      <img src="//s3plus.meituan.net/v1/mss_e2821d7f0cfe4ac1bf9202ecf9590e67/cdn-prod/file:5788b470/image/loading_2.e3d934bf.png" alt="" class="poster-default" />
      <img data-src="https://p0.pipi.cn/mmdb/fb7386025bf0fad23cb12daf49eaf31cfc81a.jpg?imageView2/1/w/160/h/220" alt="忠犬八公" class="board-img" />
    </a>
    <div class="board-item-main">
      <div class="board-item-content">
              <div class="movie-item-info">
        <p class="name"><a href="/films/1203724" title="忠犬八公" data-act="boarditem-click" data-val="{movieId:1203724}">忠犬八公</a></p>
        <p class="star">
                主演:大黄(中华田园犬),冯小刚,陈冲
        </p>
<p class="releasetime">上映时间:2023-03-31</p>    </div>
    <div class="movie-item-number score-num">
<p class="score"><i class="integer">9.</i><i class="fraction">3</i></p>
    </div>

      </div>
    </div>

                </dd>
                <dd>
                        <i class="board-index board-index-5">5</i>
    <a href="/films/1250896" title="超级马力欧兄弟大电影" class="image-link" data-act="boarditem-click" data-val="{movieId:1250896}">
      <img src="//s3plus.meituan.net/v1/mss_e2821d7f0cfe4ac1bf9202ecf9590e67/cdn-prod/file:5788b470/image/loading_2.e3d934bf.png" alt="" class="poster-default" />
      <img data-src="https://p0.pipi.cn/mmdb/fb7386beb53ddd338f07ac311aa9711648537.jpg?imageView2/1/w/160/h/220" alt="超级马力欧兄弟大电影" class="board-img" />
    </a>
    <div class="board-item-main">
      <div class="board-item-content">
              <div class="movie-item-info">
        <p class="name"><a href="/films/1250896" title="超级马力欧兄弟大电影" data-act="boarditem-click" data-val="{movieId:1250896}">超级马力欧兄弟大电影</a></p>
        <p class="star">
                主演:克里斯·帕拉特,安雅·泰勒-乔伊,查理·戴
        </p>
<p class="releasetime">上映时间:2023-04-05</p>    </div>
    <div class="movie-item-number score-num">
<p class="score"><i class="integer">9.</i><i class="fraction">3</i></p>
    </div>

      </div>
    </div>

                </dd>
                <dd>
                        <i class="board-index board-index-6">6</i>
    <a href="/films/1385790" title="望道" class="image-link" data-act="boarditem-click" data-val="{movieId:1385790}">
      <img src="//s3plus.meituan.net/v1/mss_e2821d7f0cfe4ac1bf9202ecf9590e67/cdn-prod/file:5788b470/image/loading_2.e3d934bf.png" alt="" class="poster-default" />
      <img data-src="https://p0.pipi.cn/mmdb/fb73869a06df2a339e3ba31a5b3dc96b3f3b7.jpg?imageView2/1/w/160/h/220" alt="望道" class="board-img" />
    </a>
    <div class="board-item-main">
      <div class="board-item-content">
              <div class="movie-item-info">
        <p class="name"><a href="/films/1385790" title="望道" data-act="boarditem-click" data-val="{movieId:1385790}">望道</a></p>
        <p class="star">
                主演:刘烨,胡军,文咏珊
        </p>
<p class="releasetime">上映时间:2023-03-24</p>    </div>
    <div class="movie-item-number score-num">
<p class="score"><i class="integer">9.</i><i class="fraction">3</i></p>
    </div>

      </div>
    </div>

                </dd>
                <dd>
                        <i class="board-index board-index-7">7</i>
    <a href="/films/34064" title="名侦探柯南:贝克街的亡灵" class="image-link" data-act="boarditem-click" data-val="{movieId:34064}">
      <img src="//s3plus.meituan.net/v1/mss_e2821d7f0cfe4ac1bf9202ecf9590e67/cdn-prod/file:5788b470/image/loading_2.e3d934bf.png" alt="" class="poster-default" />
      <img data-src="https://p0.pipi.cn/mmdb/fb73860292351bb535395bbbdb54130e8606c.jpg?imageView2/1/w/160/h/220" alt="名侦探柯南:贝克街的亡灵" class="board-img" />
    </a>
    <div class="board-item-main">
      <div class="board-item-content">
              <div class="movie-item-info">
        <p class="name"><a href="/films/34064" title="名侦探柯南:贝克街的亡灵" data-act="boarditem-click" data-val="{movieId:34064}">名侦探柯南:贝克街的亡灵</a></p>
        <p class="star">
                主演:高山南,山崎和佳奈,神谷明
        </p>
<p class="releasetime">上映时间:2023-04-04</p>    </div>
    <div class="movie-item-number score-num">
<p class="score"><i class="integer">9.</i><i class="fraction">3</i></p>
    </div>

      </div>
    </div>

                </dd>
                <dd>
                        <i class="board-index board-index-8">8</i>
    <a href="/films/1254456" title="生无可恋的奥托" class="image-link" data-act="boarditem-click" data-val="{movieId:1254456}">
      <img src="//s3plus.meituan.net/v1/mss_e2821d7f0cfe4ac1bf9202ecf9590e67/cdn-prod/file:5788b470/image/loading_2.e3d934bf.png" alt="" class="poster-default" />
      <img data-src="https://p0.pipi.cn/mmdb/fb73869adddb129ab41789da4d3d8e9d68bef.jpg?imageView2/1/w/160/h/220" alt="生无可恋的奥托" class="board-img" />
    </a>
    <div class="board-item-main">
      <div class="board-item-content">
              <div class="movie-item-info">
        <p class="name"><a href="/films/1254456" title="生无可恋的奥托" data-act="boarditem-click" data-val="{movieId:1254456}">生无可恋的奥托</a></p>
        <p class="star">
                主演:汤姆·汉克斯,玛丽安娜·特雷维尼,曼努埃尔·加西亚-鲁尔福
        </p>
<p class="releasetime">上映时间:2023-03-24</p>    </div>
    <div class="movie-item-number score-num">
<p class="score"><i class="integer">9.</i><i class="fraction">3</i></p>
    </div>

      </div>
    </div>

                </dd>
                <dd>
                        <i class="board-index board-index-9">9</i>
    <a href="/films/1410386" title="铃芽之旅" class="image-link" data-act="boarditem-click" data-val="{movieId:1410386}">
      <img src="//s3plus.meituan.net/v1/mss_e2821d7f0cfe4ac1bf9202ecf9590e67/cdn-prod/file:5788b470/image/loading_2.e3d934bf.png" alt="" class="poster-default" />
      <img data-src="https://p0.pipi.cn/mmdb/fb73869a3390fa281e395ba5f89fe7142e4ab.jpg?imageView2/1/w/160/h/220" alt="铃芽之旅" class="board-img" />
    </a>
    <div class="board-item-main">
      <div class="board-item-content">
              <div class="movie-item-info">
        <p class="name"><a href="/films/1410386" title="铃芽之旅" data-act="boarditem-click" data-val="{movieId:1410386}">铃芽之旅</a></p>
        <p class="star">
                主演:原菜乃华,松村北斗,深津绘里
        </p>
<p class="releasetime">上映时间:2023-03-24</p>    </div>
    <div class="movie-item-number score-num">
<p class="score"><i class="integer">9.</i><i class="fraction">2</i></p>
    </div>

      </div>
    </div>

                </dd>
                <dd>
                        <i class="board-index board-index-10">10</i>
    <a href="/films/1458044" title="爱很美味" class="image-link" data-act="boarditem-click" data-val="{movieId:1458044}">
      <img src="//s3plus.meituan.net/v1/mss_e2821d7f0cfe4ac1bf9202ecf9590e67/cdn-prod/file:5788b470/image/loading_2.e3d934bf.png" alt="" class="poster-default" />
      <img data-src="https://p0.pipi.cn/mmdb/fb738602338b1292577e12fcb6be636005d93.jpg?imageView2/1/w/160/h/220" alt="爱很美味" class="board-img" />
    </a>
    <div class="board-item-main">
      <div class="board-item-content">
              <div class="movie-item-info">
        <p class="name"><a href="/films/1458044" title="爱很美味" data-act="boarditem-click" data-val="{movieId:1458044}">爱很美味</a></p>
        <p class="star">
                主演:李纯,张含韵,王菊
        </p>
<p class="releasetime">上映时间:2023-04-15</p>    </div>
    <div class="movie-item-number score-num">
<p class="score"><i class="integer">9.</i><i class="fraction">2</i></p>
    </div>

      </div>
    </div>

                </dd>
            </dl>

        </div>
    </div>
</div>

    </div>

<div class="footer">
  <p class="friendly-links">
    关于猫眼 :
    <a href="https://ir.maoyan.com/Company-Information">关于我们</a>
    <span></span>
    <a href="https://ir.maoyan.com/Board-Members">董事会成员</a>
    <span></span>
    <a href="https://ir.maoyan.com">投资者关系</a>
    &nbsp;&nbsp;&nbsp;&nbsp;
    友情链接 :
    <a href="http://www.meituan.com" data-query="utm_source=wwwmaoyan">美团网</a>
    <span></span>
    <a href="http://www.gewara.com" data-query="utm_source=wwwmaoyan">格瓦拉</a>
    <span></span>
    <a href="http://i.meituan.com/client" data-query="utm_source=wwwmaoyan">美团下载</a>
    <span></span>
    <a href="https://www.huanxi.com" data-query="utm_source=maoyan_pc">欢喜首映</a>
  </p>
  <p class="friendly-links">
    商务合作邮箱:v@maoyan.com
    客服电话:10105335
    违法和不良信息/涉未成年人有害信息举报电话:4006018900
  </p>
  <p class="friendly-links">
    用户举报/涉未成年人有害信息举报邮箱:tousujubao@meituan.com
    舞弊线索举报邮箱:wubijubao@maoyan.com
  </p>
  <p class="friendly-links  credentials">
    <a href="/about/licence/1" target="_blank">中华人民共和国增值电信业务经营许可证 京B2-20190350</a>
    <span></span>
    <a href="/about/licence/4" target="_blank">营业性演出许可证 京演(机构)(2019)4094号</a>
  </p>
  <p class="friendly-links  credentials">
    <a href="/about/licence/3" target="_blank">广播电视节目制作经营许可证 (京)字第08478号</a>
    <span></span>
    <a href="/about/licence/2" target="_blank">网络文化经营许可证 京网文(2022)1334-041号 </a>
  </p>
  <p class="friendly-links  credentials">
    <a href="/about/licence/6" target="_blank">艺术品经营单位备案证明  京东艺(2022)0095号 </a>
  </p>
  <p class="friendly-links  credentials">
    <a href="/rules/agreement" target="_blank">猫眼用户服务协议 </a>
    <span></span>
    <a href="/rules/rule" target="_blank">猫眼平台交易规则总则 </a>
    <span></span>
    <a href="/rules/privacy" target="_blank">隐私政策 </a>
  </p>
  <p class="friendly-links  credentials">
    <a href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010102003232">京公网安备
      11010102003232号</a>
    <span></span>
    <a href="http://beian.miit.gov.cn/">京ICP备16022489号-1</a>
  </p>
  <p>北京猫眼文化传媒有限公司</p>
  <p>
    &copy;<span class="my-footer-year">2016</span>
    猫眼电影 www.maoyan.com</p>
  <div class="certificate">
    <a href="http://sq.ccm.gov.cn:80/ccnt/sczr/service/business/emark/toDetail/350CF8BCA8416C4FE0530140A8C0957E">
      <img src="https://p0.meituan.net/moviemachine/e54374ccf134d1f7b2c5b075a74fca525326.png" />
    </a>
    <a href="/about/licence/5" target="_blank">
      <img src="https://p1.meituan.net/moviemachine/805f605d5cf1b1a02a4e3a5e29df003b8376.png" />
    </a>
    <a href="https://www.12377.cn">
      <img src="https://p0.meituan.net/scarlett/3cd2a9b7dc179531d20d27a5fd686e783787.png" />
    </a>
  </div>
</div>

    <script crossorigin="anonymous" src="//www.dpfile.com/app/owl/static/owl_1.7.11.js"></script>
    <script>
      Owl.start({
        project: 'com.sankuai.myfe.mywww.media',
        pageUrl: location.href.split('?')[0].replace(/\/\d+/g, '/:id'),
        devMode: false
      })
    </script>
    <!--[if IE 8]><script crossorigin="anonymous" src="//s3plus.meituan.net/v1/mss_e2821d7f0cfe4ac1bf9202ecf9590e67/cdn-prod/file:5788b470/es5-shim.bbad933f.js"></script><![endif]-->
    <!--[if IE 8]><script crossorigin="anonymous" src="//s3plus.meituan.net/v1/mss_e2821d7f0cfe4ac1bf9202ecf9590e67/cdn-prod/file:5788b470/es5-sham.221f40f5.js"></script><![endif]-->
    <script crossorigin="anonymous" src="//s3plus.meituan.net/v1/mss_e2821d7f0cfe4ac1bf9202ecf9590e67/cdn-prod/file:5788b470/common.4ef59765.js"></script>
<script crossorigin="anonymous" src="//s3plus.meituan.net/v1/mss_e2821d7f0cfe4ac1bf9202ecf9590e67/cdn-prod/file:5788b470/board-index.7f952cb7.js"></script>
    <script src="//lx.meituan.net/lx.js" type="text/javascript" charset="utf-8" async></script>
</body>
</html>


http://www.niftyadmin.cn/n/266724.html

相关文章

【Linux】进程地址空间的初步理解

目录 程序地址空间空间布局图引入物理地址与虚拟地址的概念虚拟地址空间虚拟地址与物理地址是如何对应的&#xff1f;※父子进程独立性的理解&#xff08;重点&#xff09;fork两个返回值的原理地址空间为什么要存在&#xff1f;补充理解 程序地址空间空间布局图 &#xff08;这…

J - Playing in a Casino

题意&#xff1a;相当于比大小的赌博计算赌徒一共需要支出多少赌资 比大小的规则很简单&#xff0c;是 在这个游戏中&#xff0c;有一个套牌由n卡。每张卡都有m数字写在上面。每个n玩家从一副牌中只收到一张牌。 然后所有玩家成对玩&#xff0c;每对玩家只玩一次。因此&#x…

银河麒麟v10服务器版安装OpenDDS

1. OpenDDS简介 OpenDDS是OMG数据分发服务(DDS)的一种开源实现&#xff0c;它遵循实时系统v1.2的DDS规范(OMG Document formal/07-01-01)和实时公布/订阅互操作性通信协议v2.1的DDS-RTPS规范(OMG Document formal/2010-11-01)。OpenDDS由OCI公司设计和维护&#xff0c;可从http…

[2018.09.25][Sourceinsight]4.0配置

1 字体放大 (1)panel fonts: option,preference,colors&font (2)code fonts: option,file type options 2 修改默认字体 Alt y 3 显示行号 点击菜单栏View->Line Numbers 4 破解 https://blog.csdn.net/biubiuibiu/article/details/78044232 5 全局搜索字…

注意力机制:基于Yolov5/Yolov7的Triplet注意力模块,即插即用,效果优于cbam、se,涨点明显

论文&#xff1a;https://arxiv.org/pdf/2010.03045.pdf 本文提出了可以有效解决跨维度交互的triplet attention。相较于以往的注意力方法&#xff0c;主要有两个优点&#xff1a; 1.可以忽略的计算开销 2.强调了多维交互而不降低维度的重要性&#xff0c;因此消除了通道和权…

前端面试八股文

1、HTTP和HTTPS 1.1、http和https的基本概念 http: 是一个客户端和服务器端请求和应答的标准&#xff08;TCP&#xff09;&#xff0c;用于从 WWW 服务器传输超文本到本地浏览器的超文本传输协议。 https: 是以安全为目标的 HTTP 通道&#xff0c;即 HTTP 下 加入 SS…

python版电报API接入从零到一(有彩蛋)

文章链接 编号分类文章及链接介绍作者来源分类撰写日期收录日期F1框架python版telegram接入开源botpython-telegram-botGithub2023-04-24 申明&#xff1a;本文仅作试验研究用&#xff0c;不对参考本文操作产生的各种结果承担任何责任。 Q&A 使用Telegram的API需要交费吗…

[Eigen中文文档] 包含Eigen对象的结构体

文档总目录 本文目录 摘要需要修改什么样的代码&#xff1f;这样的代码应该如何修改&#xff1f;为什么需要这样修改&#xff1f;是否应该把 Eigen 类型的所有成员放在类的开头&#xff1f;动态大小的矩阵和向量呢&#xff1f;这是 Eigen 中的Bug吗&#xff1f;怎样有条件地执…