使用爬虫爬取豆瓣2016电影榜单中所有电影信息

By | 2017年 2月 9日

 

爬虫每日篇----今天使用爬虫爬取豆瓣2016电影榜上所有电影信息,本来以为豆瓣这种大社区的防御做的会很好,看到是HTTPS协议,我都准备写一大串头部去模拟用户了,没想到一个urlopen就直接获取了,可能是网站设计者故意没做的很封闭,让我有机可乘。这是网址(https://www.douban.com/doulist/3516235/?start=0&sort=seq&sub_type=),大家可以先看看。

如图,这就是网页的基本情况,大家可以先去看看网页源代码,我现在要做的就是把每个电影的整个\<div\>提取出来,代码直接用urlopen弄了出来,我先保存到一个文件里,要慢慢的测试,直接用文件里的代码就可以了,省得每次都抓取页面。

下一步对抓取的代码开始提取,每个电影的介绍都包含在一对div中

<div class="bd doulist-subject">
</div>

使用BeautifulSoup来提取

效果如下图

每个电影的信息都提取出来了,我想要的是电影的名称,评分,人员,上映日期,所以我只提取这些内容,大家可以按照自己的需求写。

第一个已经成功了,现在就开始批量的操作,一共有425个电影,我每提取一个就存到文件里,这是第一页25个电影提取出来的效果。

下面是全部的代码,大家可以参考一下。

 

 

One thought on “使用爬虫爬取豆瓣2016电影榜单中所有电影信息

  1. 小阳

    Traceback (most recent call last)
    in ()
    54 movie_list = get_movie_all(html)
    55 for movie in movie_list: #将每一页中的每个电影信息放入函数中提取
    —> 56 result = get_movie_one(movie)
    57 text = ”+’电影名:’+str(result[0])+’ | 评分:’+str(result[1])+’ | ‘+str(result[2])+’\n’+’\t’
    58 save_file(text,’thee.txt’)

    in get_movie_one(movie)
    29 soup_num = BeautifulSoup(str(num[0]))
    30 for line in soup_num.stripped_strings: # 对获取到的里的内容进行提取
    —> 31 result = result + line
    32
    33 info = soup_all.find_all(‘div’, class_=’abstract’)

    TypeError: can only concatenate list (not “str”) to list

    怎么解决啊

    Reply

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注