• 爬取豆瓣电影-长津湖短评


    电影《长津湖》是今年电影界的神,其他的不说,我来爬些豆瓣对长津湖的短评看看,暂时不做可视化。

    """
        爬取一下豆瓣的长津湖短评,爬取短评的六个内容:
            评论人,是否看过,星级(推荐力度),时间,获赞数,评论内容
        将爬取的内容存储到csv文档中
    """
    
    import requests
    # from bs4 import BeautifulSoup
    import parsel
    import csv
    
    # 首先建立csv文档
    csvFile = open('长津湖豆瓣短评.csv', mode='a', encoding='utf-8-sig', newline='')
    
    csvWriter = csv.DictWriter(csvFile, fieldnames=[
        '评论人',
        '是否看过',
        '推荐力度',
        '评论时间',
        '获赞数量',
        '评论内容',
    ])
    # 先写头
    csvWriter.writeheader() #写入表头
    
    # 接下来是爬取数据
    # 先建立header
    headers = {
    
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36',
    }
    
    
    # url规律,变化在start=的数字
    # url = f'https://movie.douban.com/subject/25845392/comments?start={page}&limit=20&status=P&sort=new_score'
    
    # 开始请求网页
    for page in range(0, 120, 20): # 我这里就爬六页
        url = f'https://movie.douban.com/subject/25845392/comments?start={page}&limit=20&status=P&sort=new_score'
        response = requests.get(url, headers=headers) # 通过开发者工具,发现请求是get的,我这里就用get的
        response.encoding = response.apparent_encoding
        response.raise_for_status()
        response.encoding = 'utf-8'
        selector = parsel.Selector(response.text)
    
        allData = selector.css('#comments div.comment-item')
        for item in allData:
            user = item.css('.comment-info a::text').get() # 获取评论人的名称
            islook = item.css('.comment-info span::text').get() # 是否看过
            # islook = item.css('.comment-info span:nth-child(2)::text').get() # 是否看过
            isrecommended = item.css('.comment-info span::attr(title)').get() # 推荐力度
            # isrecommended = item.css('.comment-info span:nth-child(3)::attr(title)').get()  # 推荐力度
            ratetime = item.css('.comment-info span:nth-child(4)::attr(title)').get().strip() # 评论时间
            # followers = item.css('.comment-vote span::text').get() # 点赞数量
            followers = item.css('.comment-vote span::text').get() # 点赞数量
            print(followers)
            # content = item.css('.comment-content .short::text').get() # 评论内容
            content = item.css('.comment-content span::text').get()
    
            csvwriterdict = {
                '评论人': user,
                '是否看过': islook,
                '推荐力度': isrecommended,
                '评论时间': ratetime,
                '获赞数量': followers,
                '评论内容': content,
            }
            print(csvwriterdict)
            # 将上面的字典写入到csv文档
            csvWriter.writerow(csvwriterdict)
    
    csvFile.close() # 关闭文件
    

      

    本来想用bs4爬的,看到某大神用parsel进行数据解析,学习下。存储的效果如下:

    留几个问题,作为自己的动力。

    1,用bs4或者selenium重新爬一次上面的项目;

    2,做些可视化;

    3,利用pandas的格式进行保存。

    懒了,有空再做这几个。 

  • 相关阅读:
    为自己的应用程序添加脚本支持
    关于Excel VBA程序的界面编程及其他
    下载JAVA SDK 1.5
    在软件产品中使用VBA的软件和企业
    VBHelper:坚守脚本(转载)
    Google Desktop Search试用手记
    几个不错的开源的.net界面控件
    C++强大背后
    extern用法详解
    条款1:尽量用const和inline而不用#define
  • 原文地址:https://www.cnblogs.com/mafu/p/15435370.html
Copyright © 2020-2023  润新知