利用 Python 爬取豆瓣电影排行榜 Top250 的数据

平时利用在地铁公交的时间简单学习了解了 Python,学习参考的是廖雪峰的Python教程 ,但是要想学好,还是要上手练习才会有好的效果,于是周末就利用 Python 写了一个简单的爬虫,来获取豆瓣电影排行榜 Top250 的数据,实现了保存数据到文件,保存海报图片。

我利用的是 requests (HTTP for Humans ,哈哈)和 BeautifulSoup,具体使用方法可参考官网,安装方式:

sudo pip install requests
sudo pip install beautifulsoup4

安装好以后就可以开始了,首先打开豆瓣电影排行榜,查看网页源码
这里写图片描述
箭头部分就是我们需要的数据,包括:排名,名字,评分,评分人数,短评,同时当我们查看下一页的时候,发现链接格式是这样的
https://movie.douban.com/top250?start=25
我们可以得知网页是按 25 来分页的,于是代码如下:

def movies_spider(start):
    global file_content
    url = "https://movie.douban.com/top250?start=%d" % start
    response = requests.get(url).text
    soup = BeautifulSoup(response)
    movie_list = soup.find_all('div', {'class': 'item'})
    for item in movie_list:
        order = int(item.find('em').string)
        icon_path = item.find('img').get('src')

        info = item.find('div', {'class': 'info'})
        name = info.find('span', {'class': 'title'}).string
        save_pic(icon_path, name)
        rating_num = info.find('span', {'class': 'rating_num'}).string
        total = info.find('span', {'class': 'rating_num'}).find_next_sibling().find_next_sibling().string
        inq = info.find('span', {'class': 'inq'})
        try:
            quote = inq.get_text()
        except AttributeError:
            quote = 'None'
            print("Type error")

        file_content += "%d\t%s\t评分:%s\n\t%s\t简评:%s\n\n" % (order, name, rating_num, total, quote)

这就是核心部分,其实只要结合 BeautifulSoup 的文档以及网页源码,还是挺容易理解的,那剩下的部分就是保存文件和保存图片,代码已经放到 Github ,有需要的可前往查看 Github

参考链接

廖雪峰的个人网站python教程
requests
BeautifulSoup

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章