前段时间奉俊昊的《寄生虫》在奥斯卡上获得不少奖项,我也比较喜欢看电影,看过这部电影后比较好奇其他人对这部电影的看法,于是先用R爬取了部分豆瓣影评,jieba分词后做了词云了解,但是如果不登录豆瓣直接爬取影评只可以获得十页短评,这个数据量我认为有点少,于是整理了python模拟登录豆瓣,批量爬取数据,制作特别样式词云的方法。
一、 用到的Python库
import os ##提供访问操作系统服务的功能
import re ##正则表达式
import time ##处理时间的标准库
import random ##使用随机数标准库
import requests ##实现登录
import numpy as np ##科学计算库,是一个强大的N维数组对象ndarray
import jieba ##jieba分词库
from PIL import Image ##python image library 库,python3多用pillow库
import matplotlib.pyplot as plt ##绘图
plt.switch_backend('tkagg')
from wordcloud import WordCloud, ImageColorGenerator##词云制作
关于每个库的运用要熟悉挺久,我也只是入门级
二、思路
1. 模拟登录豆瓣
2. 爬取一页影评
3. 批量爬取影评
4. 制作普通词云
5. 制作图片形状背景的词云
三、代码实现
1. 模拟登录豆瓣
首先需要分析豆瓣的登录页面

点击鼠标右键进入“检查”,在登录窗口里输入错误的登录信息,进入Network下名为basic中,这里有许多有用的信息,如
Request URL,User-Agent,Accept-Encoding,等等
还需要看看请求登录时携带的参数,将调试窗口往下拉查看Form Data。

代码模拟登录:
# 生成Session对象,用于保存Cookie
s = requests.Session()
# 影评数据保存文件
COMMENTS_FILE_PATH = 'douban_comments.txt'
# 词云字体
WC_FONT_PATH = 'C:/Windows/Fonts/SIMLI.TTF'
def login_douban():
"""
登录豆瓣
:return:
"""
# 登录URL
login_url = 'https://accounts.douban.com/j/mobile/login/basic'
# 请求头
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36',
'Host': 'accounts.douban.com',
'Accept-Encoding':'gzip, deflate, br',
'Accept-Language':'zh-CN,zh;q=0.9',
'Referer': 'https://accounts.douban.com/passport/login?source=main',
'Connection': 'Keep-Alive'}
# 传递用户名和密码
data = {
'name': '12345125',##这里改为你正确的登录名
'password': '12342324',##这里改为你正确的登录密码
'reme


1824

被折叠的 条评论
为什么被折叠?



