Python爬虫自学笔记:分析头条文章网页源文件

这两天分析了一下头条文章网页的源文件,现在将分析的结果分享给大家。

首先以一篇文章为例,其网址如下:

https://www.toutiao.com/i6822245428176617998/

如上图网页所示,文章中包含文字和图片。

下面来看一下页面的源文件,发现正文的内容没有在常规的<p></p>标签内,而是在<script></script>标签中,如下图所示:

这次不使用BeautifulSoup来解析页面,直接使用find()命令在源码中定位,提取源码中的title和content内容。

首先用requests请求页面,查看返回结果,如下图:

通过查看文章标题和正文的上下代码,发现articleInfo和subInfo是源码中唯一标签属性信息,这样可以在源码的基础上提取它们之间的代码信息,即含有文章标题和正文内容。且在title和content的结尾有代码slice(6,6),这是去除字符串前6和后6的字符串,保留中间值。

定义get_title_content()函数,实现提取title和content信息,具体代码如下:

get_title_content()函数源码:

# 提取title和content def get_title_content(text): # 查找articleInfo articleInfo_id = r.text.find(“articleInfo”) subInfo_id = r.text.find(“subInfo”) articleInfo = r.text[articleInfo_id:subInfo_id] # 查找articleInfo中的title和content title_id = articleInfo.find(“title”) content_id = articleInfo.find(“content”) groupId_id = articleInfo.find(“groupId”) title = articleInfo[title_id:content_id].split(“”)[1] content = articleInfo[content_id:groupId_id].split(“”)[1] return title[6:-6],content[6:-6]

主函数运行代码(省略了请求网页的代码):

# 提取title和content title,content = get_title_content(r.text) print(title) print(content)

代码运行结果如下:

如上图所示,content的内容中包含了\u003c、\”等特殊字符,下面该研究如何将这些特殊字符转为常规的字符。

突然感觉时间不够用啊,花了两天功夫才提取了文章的标题和正文,每天只有晚上一点点时间来研究Python,时间好少的感觉有木有。

今天就到这里了,明天继续研究,如何将content内容中的特殊字符串转成常规的字符串。

感兴趣的朋友可以关注一下哈,和我一起来尝试将头条文章保存到本地存储。有经验的朋友可以多提提意见哈。

最近网上各种版权事件飞起,什么合法不合法的,什么侵犯权益的啊,好烦的有木有。本文在这里加一个免责说明吧,本文纯属用于学习、研究、探讨,不做商业用途,如果有侵权或其他违法情况,可以联系我删除,谢谢。

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片