查看原文
其他

爬豆瓣电影名的小案例(附视频操作)

2017-03-15 大邓 大邓带你玩python

人生苦短,我用python!


1

之前的文章一直都是代码,文字讲解很少。从今天开始,我想每天讲解一个爬虫的小案例,可能是爬豆瓣,可能是爬知乎,也可能去爬淘宝评论,不一而足。只要有趣有用就好。 

豆瓣是我很喜欢的平台,一般大家都会去豆瓣看影评,书评,根据评论决定自己是否观看电影或者入手书籍。所以有很多经济管理类的学生有这方面的数据采集需求,当然,我也是其中的一员,对这方面的兴趣促使我学的python。 

2

那么写爬虫前,一定要学会分析网页结构,定位到你要抓的数据所在的节点标签。定位方法有以下几种: 

1. 如果这个标签是整个html网页唯一的一个标签,那么直接找这个标签就可以。

2. 如果这个标签不是唯一的,那么你可以往该节点的父节点入手,如果父节点是唯一的,那么先定位父节点,然后再选出父节点的子节点。此时子节点就是目标节点。

方法大体就是这样,现在我们开始

我们今天只抓豆瓣电影的电影名。

首先我们分析html中目标内容所在的节点,打开开发者工具

a标签一般情况都不唯一的,那么我们先找a的父亲<div class="pl2">算账,再找他孩子a标签。找到div后,取他内部的标签时候用到Beautifulsoup对象的contents方法,返回div内部数据的列表。然后对内部数据取文本内容,用到get_text()

3

好了,我附上代码

import requests

from bs4 import BeautifulSoup

url ='https://movie.douban.com/chart'

response = requests.get(url).text

bsObj = BeautifulSoup(response,'html.parser')   #lxml

bsObj = bsObj.find_all('div',{'class':'pl2'})

for tag in bsObj:

    div_tag = tag.contents[1].get_text()

    name = div_tag.strip('\n').replace(' ','') +'\n'

    print(name)

Hello,伙伴们长按二维码关注我们吧!


你的支持就是我最大的动力



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存