BeautifulSoup爬取豆瓣电影top250信息

豆瓣是一个社区网站,创立于2005年3月6日。该网站以书影音起家,提供关于书籍,电影,音乐等作品信息,其描述和评论都是由用户提供的,是Web2.0网站中具有特色的一个网站。
网址:https://movie.douban.com/top250?start=0&filter=
我将基于豆瓣电影top250讲解BeautifulSoup技术的爬虫,获取排名前250名的影片信息,包括(网站名称、豆瓣排名、中文名称、原名称、国家、上映时间、类型、评分、导演主演、评价人数、剧情简介链接、图片地址、影片标签)等。主要内容包括:分析网页DOM树结构,爬取豆瓣电影信息、分析链接跳转及爬取对应的信息。

1、分析网页结构及定位

1.1. 我们先导入相关的的包,获取网页并使用BeautifulSoup解析,代码如下:

# -*- coding: utf-8 -*-
import urllib2
from bs4 import BeautifulSoup

url = "https://movie.douban.com/top250"
html = urllib2.urlopen(url).read()
soup = BeautifulSoup(html,"html.parser")

print u'网站名称:',soup.title.string.replace("\n","")

1.2.把鼠标指在肖申克的救赎模块,右击选择检查,进行详细信息定位
在这里插入图片描述
把网页看作一个大盒子,这些信息都是一个一个的小盒子装着的,每一个电影的所有信息都装在<li> <li>中,在其中又分出很多的带属性标签,我们需要获取的内容全部在一个叫<div class="item"> </div>的标签中装着,如图所示:
在这里插入图片描述

只需要在class="item"中做迭代循环就可以获取到模块的所有信息,定位代码如下:

for tag in soup.find_all(attrs={
   
   "class":"item"}):

2、获取对应的信息

(1)豆瓣电影排名
电影排名被存在<em> </em>标签中,而且是在第一个em标签,方便直接获取
在这里插入图片描述
获取第一个em标签内容代码如下:

>>> print u'豆瓣排名:',tag.find('em').string
豆瓣排名: 1
>>> print u'豆瓣排名:',tag.find('em').get_text()
豆瓣排名: 1
>>> 

(2)获取电影中文名称
电影的中文名称和英文名称都在span标签中,但中文名称在第一个span标签
在这里插入图片描述
获取第一个span标签内容代码如下:

>>> print u'中文名称:',tag.find('span').string
中文名称: 肖申克的救赎
>>> print u'中文名称:',tag.find('span').get_text()
中文名称: 肖申克的救赎
>>> 

(2)获取电影原名称

  1. 通过第二个span标签找到它
  2. 通过split(’/’)[1]去掉“/”
>>> English = tag.find_all('span')[1].get_text()
>>> print u'原名称:',English
原名称:  / Intouchables
>>> 
>>> print u'原名称:',English.split('/')[1]
原名称:  Intouchables
>>> 

(3)获取国家

  1. 通过p标签查找所有内容
  2. 通过split(’/’)分割,“-”表示向后进行分割
>>> print u'国家:',tag.p.get_text()
国家: 
                            导演: 奥利维·那卡什 Olivier Nakache / 艾力克·托兰达 Eric Toledano   主...
                            2011 / 法国 / 剧情 喜剧
                        
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值