爬取豆瓣电影TOP250

作者: 编程新视野 | 来源:发表于2019-01-25 14:58 被阅读0次

    这是一个很好的新手练习项目,爬取豆瓣top250的电影,并分别记录排名、片名、导演、主演、评论等信息,保存在一个txt文档里。

    对新手来说,难点部分在于如何找到并成功跳转到下一页,并且在最后一页的时候识别出来并停止爬虫。

    一个很基础的爬虫。以下是代码部分。

    全部​源码视频书籍练习题等资料进群696541369 即可免费获取

    import requests

    from bs4 import BeautifulSoup

    import time

    import re

    lurl = 'https://movie.douban.com/top250'

    movie = []

    def getlist(listurl):

    time.sleep(2)

    headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80 Safari/537.36'}

    res = requests.get(listurl)

    soup = BeautifulSoup(res.text, 'html.parser')

    movielist = soup.select('.grid_view li')

    for m in movielist:

    rank = m.select('em')[0].text

    title = m.select('.title')[0].text

    direct = m.select('.info .bd p')[0].text.strip()

    actor = '主演:'.join(direct.split(' 主演:'))

    director = '年代:'.join(actor.split(' '))

    if m.select('.inq'):

    comments = m.select('.inq')[0].text.strip()

    else:

    comments = 'None'

    movie.append('排名: '+ rank+ '' +'片名: '+ title + ''+ director + '' + '评论: '+ comments +'' + '')

    if soup.select('.next a'):

    asoup = soup.select('.next a')[0]['href']

    Next_page = lurl + asoup

    getlist(Next_page)

    else:

    print('结束')

    return movie

    movies = getlist(lurl)

    with open('movie.txt', 'w') as m:

    for a in movies:

    m.write(a)

    相关文章

      网友评论

        本文标题:爬取豆瓣电影TOP250

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