工欲善其事,必先利其器,我们首先得了解beautifulsoup的使用,这其实是一个比较简单的东西

  BeautifulSoup的基本使用语法规则

  • .find() 使用示例
    soup.find('a')。那么会返回在soup包含的源代码中,遇到的第一个<a>...</a>标签内容对象。
    soup.find('a', id='next')。那么会返回在soup包含的源代码中,遇到的第一个有属性为id,值为next的<a>对象,比如<a id="next">...</a>。(不只可以用id,大部分其他的属性都可以直接使用,比如src、name。 值得注意的是,class这个属性因为是Python关键字,不能直接使用,所以在BS里面,使用class_='...'进行代替 )
    find返回的结果,依然可以继续使用find()或者find_all()方法。如果找不到指定的内容,find会返回None

  • .find_all()使用示例
    soup.find_all('a')。那么会返回在soup包含的源代码中,遇到的所有<a>...</a>标签内容的可迭代对象(我们可以把它看成一个 list 或者数组)
    soup.find_all('a', class_='next')。那么会返回在soup包含的源代码中,遇到的所有属性为class,值为next的<a>的 可迭代对象,比如<a class="next">...</a>。(语法和find也一样,class也不能直接写)
    find_all返回的“list”中的单个对象 依然可以继续使用find()或者find_all()方法。如果找不到指定的内容,find_all会返回一个空的“list”。

  • 获取元素的某个属性
    soup['src],这样我们就能取出soup对象的src属性了。如果该属性不存在,那么程序会报错。

  • 获取元素中的所有文本
    soup.text,假设soup对象为<div>你好<a>复联</a></div>,那么这个操作返回字符串是你好复联

首先我们获得html的源码,然后保存到文件中,使用beautiful读出来解析:

import  requests
from bs4 import BeautifulSoup
url="https://movie.douban.com/cinema/later/chengdu/"
douban_req = requests.get(url)
# print(douban_req.content.decode('utf-8')) #输出获得的内容
#防止被服务器封掉ip,也减轻服务器压力,保存到本地 file_douban = open("douban.html","wb") # 写入文件
file_douban.write(douban_req.content)
file_douban.close()
# 以只读的方式打开文件
file_open=open("douban.html","rb")
html = file_open.read()
file_open.close()
#解析
soup = BeautifulSoup(html,"lxml") # 初始化BeautifulSoup
print(soup.find("link",href="https://img3.doubanio.com/f/shire/52c9997d6d42db58eab418e976a14d5f3eff981e/css/douban.css"))

将所有的电影信息输出

#解析
soup = BeautifulSoup(html,"lxml") # 初始化BeautifulSoup
all_movie=soup.find("div",id="showing-soon",class_="tab-bd") # 获得整个板块
for each_mobie in all_movie.find_all("div",class_="item"):
print(each_mobie)

效果图:

接下来我们对每个具体电影进行切割分析

我们可以看到首先电影的简单信息都在<ul>  </ul>中,因此根据find,和find_all来获得信息

import  requests
from bs4 import BeautifulSoup
url="https://movie.douban.com/cinema/later/chengdu/"
douban_req = requests.get(url)
# print(douban_req.content.decode('utf-8')) #输出获得的内容
#防止被服务器封掉ip,也减轻服务器压力,保存到本地 file_douban = open("douban.html","wb") # 写入文件
file_douban.write(douban_req.content)
file_douban.close()
# 以只读的方式打开文件
file_open=open("douban.html","rb")
html = file_open.read()
file_open.close()
#解析
soup = BeautifulSoup(html,"lxml") # 初始化BeautifulSoup
all_movie=soup.find("div",id="showing-soon",class_="tab-bd") # 获得整个板块
for each_mobie in all_movie.find_all("div",class_="item"):
title=each_mobie.find("a",class_="")#标题名字
ule_title = title["href"]
ul_information = each_mobie.find_all("li",class_="dt")
time =ul_information[0].text
opera = ul_information[1].text
country =ul_information[2].text
people = each_mobie.find("li",class_="dt last").text
trailer= each_mobie.find("a",class_="trailer_icon")
print("电影链接:",title.text )
print(ule_title)
print(time)
print(opera)
print(people)
if trailer is None:
print("暂时没有预告片")
else:
print("预告片:",trailer["href"])
print("")

效果:

自己也可以增加别的元素,如把海报照片保存下来等,其实都是同样的操作。

具体可参考大佬链接:https://www.jianshu.com/p/c64fe2a20bc9

如果数据保存成html或者csv格式:https://www.jianshu.com/p/011abdcee7e4

BeautifulSoup解析豆瓣即将上映的电影信息的更多相关文章

  1. python3爬取豆瓣排名前250电影信息

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @File : doubanmovie.py # @Author: Anthony.waa # @Dat ...

  2. 003.[python学习] 简单抓取豆瓣网电影信息程序

    声明:本程序仅用于学习爬网页数据,不可用于其它用途. 本程序仍有很多不足之处,请读者不吝赐教. 依赖:本程序依赖BeautifulSoup4和lxml,如需正确运行,请先安装.下面是代码: #!/us ...

  3. Scrapy项目 - 实现豆瓣 Top250 电影信息爬取的爬虫设计

    通过使Scrapy框架,掌握如何使用Twisted异步网络框架来处理网络通讯的问题,进行数据挖掘和对web站点页面提取结构化数据,可以加快我们的下载速度,也可深入接触各种中间件接口,灵活的完成各种需求 ...

  4. python爬虫实战 获取豆瓣排名前250的电影信息--基于正则表达式

    一.项目目标 爬取豆瓣TOP250电影的评分.评价人数.短评等信息,并在其保存在txt文件中,html解析方式基于正则表达式 二.确定页面内容 爬虫地址:https://movie.douban.co ...

  5. 如何用Python在豆瓣中获取自己喜欢的TOP N电影信息

    一.什么是 Python Python (蟒蛇)是一门简单易学. 优雅健壮. 功能强大. 面向对象的解释型脚本语言.具有 20+ 年发展历史, 成熟稳定. 具有丰富和强大的类库支持日常应用. 1989 ...

  6. Python爬虫入门 之 如何在豆瓣中获取自己喜欢的TOP N电影信息

    什么是爬虫 按照一定规则自动的获取互联网上的信息(如何快速有效的利用互联网上的大量信息) 爬虫的应用 搜索引擎(Google.百度.Bing等搜索引擎,辅助人们检索信息) 股票软件(爬取股票数据,帮助 ...

  7. 豆瓣电影信息爬取(json)

    豆瓣电影信息爬取(json) # a = "hello world" # 字符串数据类型# b = {"name":"python"} # ...

  8. Scrapy项目 - 数据简析 - 实现豆瓣 Top250 电影信息爬取的爬虫设计

    一.数据分析截图(weka数据分析截图 ) 本例实验,使用Weka 3.7对豆瓣电影网页上所罗列的上映电影信息,如:标题.主要信息(年份.国家.类型)和评分等的信息进行数据分析,Weka 3.7数据分 ...

  9. requests结合xpath爬取豆瓣最新上映电影

    # -*- coding: utf-8 -*- """ 豆瓣最新上映电影爬取 # ul = etree.tostring(ul, encoding="utf-8 ...

随机推荐

  1. html背景图不随滚轮滚动,而且按住Ctrl并滚动滚轮时,图片不会变大缩小,就像百度的首页一样

    之前在百度知道我提问过这一个问题,后来解决了.不过好多人来问我时怎么解决的,源码.其实很简单.这里我贴一下代码.有需要的小伙伴不用再加我qq了,直接来这里取吧. 里面的图片是我随便找的. <!D ...

  2. fedora29 安装mongodb 4.0,6问题记录

    如果运行mongod命令时提示 无加载共享库libcrypto.so.10,那就到页面下载http://www.rpmfind.net/linux/rpm2html/search.php?query= ...

  3. 10.17小作业 基于TCP开发一款远程CMD程序

    基于TCP开发一款远程CMD程序 客户端连接服务器后,可以向服务器发送命令 服务器收到命令后执行,无论执行是否成功,无论执行几遍,都将执行结果返回给客户端 注意: 执行系统指令使用subprocess ...

  4. HTML+CSS知识总结1

    一.浏览器页面页面由结构层(html)表现层(css)行为层(js)组成 二.DOCTYPE作用是用来告知浏览器以何种模式渲染文档. 三.严格模式是指浏览器按照W3C标准解析代码,混杂模式又称怪异模式 ...

  5. “不是一个有效的Win32应用程序”

    造冰箱的大熊猫@cnblogs 2018/10/23 今天在Windows计算机上安装一个应用程序时遇到“不是一个有效的Win32应用程序”错误.原以为是应用程序与操作系统版本兼容问题,或者是应用程序 ...

  6. 1110 Complete Binary Tree (25 分)

    Given a tree, you are supposed to tell if it is a complete binary tree. Input Specification: Each in ...

  7. js模拟24小时的倒计时效果

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. 2019年9月17 发布 Java 13

    Java 13 明天发布,最新最全新特性解读   2017年8月,JCP执行委员会提出将Java的发布频率改为每六个月一次,新的发布周期严格遵循时间点,将在每年的3月份和9月份发布. 目前,JDK官网 ...

  9. IDEA基础配置

    详细IDEA使用请参考 https://www.w3cschool.cn/intellij_idea_doc/ 下面的内容都是从别人手中收集之后整理的: 全局设置 修改主题 修改字体 修改控制台字体 ...

  10. JDBC连接数据库遇到的“驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。

    要从旧算法列表中删除3DES: 在JDK 8及更早版本中,编辑该 /lib/security/java.security文件并3DES_EDE_CBC从jdk.tls.legacyAlgorithms ...