美文网首页Python中文社区我的Python自学之路
爬豆瓣电影名的小案例(附视频操作)

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

作者: 大邓和他的python | 来源:发表于2017-03-15 12:36 被阅读129次

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

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

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

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

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

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

豆瓣电影排行

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

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

目标节点附近的情况

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

好了,我附上代码

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)


【python爬虫系列之】爬豆瓣电影小案例 欢迎加入

相关文章

网友评论

    本文标题:爬豆瓣电影名的小案例(附视频操作)

    本文链接:https://www.haomeiwen.com/subject/ybflnttx.html