paddlepaddle七日训练营大作业遇坑笔记

本文分享了从爱奇艺网站爬取评论数据的经验,详细介绍了如何通过观察Network请求找到评论数据的位置,以及如何利用last_id参数实现翻页,最后解决了中文显示问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.youkuaiyun.com/yinyiyu/article/details/105778673

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值