进击的爬虫-003-beautifulsoup实现猫眼电影前100爬取

news/2024/7/19 12:30:35 标签: python, 爬虫, 前端

BeutifulSoup

  • beautifulsoup是python的一个xml , html解析库, 借助网页的结构和属性等特性来解析网页,只需要简单的几条语句, 就可以用来方便的从网页中提取数据

选择解释器

beautifulsoup在解析的时候需要依赖解析器

  • 1. python标准库 BeautifulSoup(text, 'html.parser)
  • 2. lxml HTML解析器 BeautifulSoup(text, 'lxml')
  • 3. lxml XML解析器 BeautifulSoup(text, 'xml')
  • 4. html5lib BeautifulSoup(text, 'html5lib')
  • 推荐使用 lxml HTML 解析器

基本用法

  • soup = BeautfifulSoup(text, 'lxml')
  • soup.prettify() 把要解析的字符串以标准的缩进格式输出
  • soup.p.string string属性获取文本内容

节点选择器

  • 选择元素 soup.p 如果有多个p元素,只找到第一个
  • 提取属性 soup.p.attrs得到一个字典
  • soup.p['class'] 获取属性的值, 只可能是字符串也可能是列表
  • 嵌套选择 soup.p.a.string
  • 关联选择 子节点 children 子孙节点 descdants
  • 关联选择 父节点 parent 祖先节点 parents
  • 兄弟节点 next-sibling previous-sibling

方法选择器

  • find_all() 找到所有满足条件的标签, 放在一个列表中
  • find() 找到第一个满足条件的列表
  • css 选择器, beautifulsoup还提供了css选择器,对web比较熟悉, 想使用css选择器来选择标签的小伙伴可以使用 pyquery 解析库 这了就不做介绍了

 

 

beautifulsoup实现猫眼电影前100爬取

from bs4 import BeautifulSoup as bs
import requests

def get_movie_info(ret):
    soup = bs(ret.text, 'lxml')  #用beautifulsoup库 处理前端页面
    all_dd = soup.find_all('dd')  #找到页面中的每个dd标签
    for content in range(10):     #每个dd标签中都包含着一个电影的信息
        num = all_dd[content].i.string  #获取当前电影的排名
        movie_infos = [num]
        for p in all_dd[content].find_all('p'):
            if p.string:   #分别获取 电影名, 主演, 上映时间等,
                movie_infos.append(p.string.strip())

        movie = f'排名:{movie_infos[0]}, 电影名:{movie_infos[1]}, {movie_infos[2]}, {movie_infos[3]}'
        print(movie)

url = 'https://maoyan.com/board/4'

for offset in range(10):
    data = {
        'offset':offset * 10
    }
    ret = requests.get(url, params=data)  #获取前端页面
    get_movie_info(ret)  #调用函数, 处理前端页面

 

转载于:https://www.cnblogs.com/zhangjian0092/p/11215750.html


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

相关文章

Avalon流接口

Avalon-ST(Avalon流接口) 5.1 基本概念 Avalon Streaming System:Avalon流系统包含一个或多个Avalon-ST连接,以传输数据从source接口到sink接口,上面显示的系统组成Avalon-ST接口传输数据从系统输入到输出。Avalon-M…

进击的爬虫-001-正则表达式实现猫眼电影top100排名爬取

大家好, 我是眼睛儿,从今天起,我会每周和大家分享一些学习爬虫相关的知识,.欢迎各位大佬的敦促和指导,也欢迎对爬虫感兴趣的小伙伴来交流,共同进步,废话不多说,上代码: 用python语言从繁多而复杂的数据中提取出有用的数据是相当繁琐的, 正则表达式为我们提供了一种简便的方法.想…

CACHE简述

CACHE简述 1. 为什么要使用CACHE CPU速度越来越快处理的数据量越来越大,需要更大的内存内存速度越快,价格越高,大容量存储器,一般价格低廉,但是速度慢。2. 局部原则 Cache减少内存存取时间是利用内存存取具有局部特…

九丶Web框架之Tornado

概述 Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本。这个 Web 框架看起来有些像web.py 或者 Google 的 webapp,不过为了能有效利用非阻塞式服务器环境,这个 Web 框架还包含了一些相关的有用工具 和优化。 Tornado 和…

快速由PCI迁移到PCIe

快速由PCI迁移到PCIe 1. 首先要搞清楚两者的一些对应关系 PCI的并行总线 --> PCIe的串行总线 HOST还是那个HOST HOST桥 --> RC PCI Agent --> EP PCI桥 --> Switch 其它诸如配置空间、可预取/不可预取、配置空间的ID寻址、内存及IO空间的地址寻址&#xf…

最大公约数算法

1、欧几里德算法和扩展欧几里德算法 欧几里德算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。其计算原理依赖于下面的定理: 定理:gcd(a,b) gcd(b,a mod b) 证明:a可以表示成a kb r,则r a mod …

CCD和CMOS图像传感器的快门

CCD和CMOS图像传感器的快门 1. 介绍 在数字相机里,通过CCD或CMOS图像传感器里的光二极管将景物的光转换为电信号形成图像,传感器感光元件产生的电信号大小取决于光强度和光照时间(积分时间),因此,数字相机…

自动视频跟踪系统的解决方案

自动视频跟踪系统的解决方案 作者:上海凯视力成信息科技有限公司 转载请标明出处 Casevision公司为自动视频跟踪系统提供了多种解决方案。 1:标清视频的自动跟踪解决方案 围绕经典的自动视频跟踪模块AVT21,Casevision提供了如下解决方案&a…