1.第一个坑是数据的爬取
目标网站链接](https://www.iqiyi.com/v_19ryjgbjh8.html#curid=15303652400_1862c50c07a916033e2032c20cabcf52)
打开页面检查找不到url信息,以我拙劣的爬虫技术,立马意识到可能碰上了硬茬子,果然,试了一天,失败了。
晚上听了老师的讲解之后,才发现了要点所在。操作如下:
首先检查页面,点击Network,滑动主页面“查看更多评论”,你会发现Name会不断有东西蹦出来,那么自己要找的评论一定在这里。查看response和preview,发现评论就在下面那个文件里(灰色的那个)
为了便于观察,点击Filterhe和js,查看更多评论,你会发现不断有这个文件蹦出来
观察这些url有什么规律,下图是两个url的截图(忘了说url就在Headers中),观察发现只有last_id和call_back发生改变,经过试验,仅用last_id就可以定位到评论,last_id后面的可以去掉。last_id的话主要是达到一个翻页的作业,只需要把本次查询到的最后一个评论的用户的id赋值给last_id就可以实现查询下一页的评论了。
代码如下:
url="https://sns-comment.iqiyi.com/v3/comment/get_comments.action?agent_type=118&agent_version=9.11.5&business_type=17&content_id=15068699100&page=&page_size=10&types=time&last_id="
url+=str(lastId)
print(url)
responseTxt=getMovieinfo(url)
responseJson = json.loads(responseTxt)
comments = responseJson['data']['comments']
for val in comments:
#print(val.keys())
if 'content' in val.keys():
print(val['content'])
arr.append(val['content'])
lastId = str(val['id'])
return lastId
2,第二个坑,中文显示
查询代码发现下载中文字体的网站挂球了,为此只能自己找,还好之前作业还保留字体文件),然后导入之后再运行下列代码,问题解决。
#下载中文字体
wget https://mydueros.cdn.bcebos.com/font/simhei.ttf
#在操作系统中创建字体目录fonts(可能已经有
mkdir .fonts
# 复制字体文件到该路径
cp simhei.ttf .fonts/
#复制字体到当前使用的conda环境中的matplotlib下的指定路径
cp simhei.ttf /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf/
# Linux系统默认字体文件路径
ls /usr/share/fonts/
# 查看系统可用的ttf格式中文字体
fc-list :lang=zh | grep ".ttf"
# 设置显示中文
matplotlib.rcParams['font.family'] = ['SimHei']
# 解决负号'-'显示为方块的问题
matplotlib.rcParams['axes.unicode_minus'] = False
在此过程中参考了一位同学的博客:
https://blog.csdn.net/yinyiyu/article/details/105778673