爬虫实践---豆瓣短评+词云分析

本文介绍了一次爬虫实践,通过爬取《战狼2》的豆瓣短评并进行词云分析。首先,利用requests库获取电影页面和评论链接,处理中文乱码问题。接着,设置超时重连机制确保爬取稳定性。然后,进行了分词处理,推荐了DroidSansFallbackFull.ttf字体以适应Deepin系统,并提到了可用的分词包。最后,推荐了一个在线词云制作工具,可以自定义图案,但前提是对评论进行有效分词。
摘要由CSDN通过智能技术生成

电影页面:

https://movie.douban.com/subject/26363254

热评:

第一页:https://movie.douban.com/subject/26363254/comments?start=0&limit=20&sort=new_score&status=P

第n页:https://movie.douban.com/subject/26363254/comments?start=20*(n-1)&limit=20&sort=new_score&status=P


中文乱码了,查看当前网页的编码格式:

print requests.get(url).encoding

然后手动设置网页编码格式:

r.encoding = 'utf-8'

获取全部短评数量:

total_num = soup.find('li', class_="is-active").span.text.strip()
    total_num = int(total_num[3:-1])
    page_num = total_num / 20
    last_num = total_num % 20
多线程

pool = ThreadPool(20)
    #pool = multiprocessing.Pool(multiprocessing.cpu_count())#import multiprocessing
    pool.map(get_content,(url for url in urls))#映射到主函数中进行循环
    pool.close()
    pool.join()

# 设置等待时间,避免爬取太快
        import time
        # 用于在超时的时候抛出异常,便于捕获重连
        import socket
        timeout = 3
        socket.setdefaulttimeout(timeout)
        
        # 超时重连
        state = False
        while not state:
            try:
                html = get_html(url)
                state = True
            except socket.timeout:
                state = False
                print('访问过快!超时重连')


#!/usr/bin/env python 
# -*- coding: utf-
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值