这两天分析了一下头条文章网页的源文件,现在将分析的结果分享给大家。
首先以一篇文章为例,其网址如下:
https://www.toutiao.com/i6822245428176617998/
如上图网页所示,文章中包含文字和图片。
下面来看一下页面的源文件,发现正文的内容没有在常规的
这次不使用BeautifulSoup来解析页面,直接使用find()命令在源码中定位,提取源码中的title和content内容。
首先用requests请求页面,查看返回结果,如下图:
通过查看文章标题和正文的上下代码,发现articleInfo和subInfo是源码中唯一标签属性信息,这样可以在源码的基础上提取它们之间的代码信息,即含有文章标题和正文内容。且在title和content的结尾有代码slice(6,6),这是去除字符串前6和后6的字符串,保留中间值。
定义get_title_content()函数,实现提取title和content信息,具体代码如下:
get_title_content()函数源码:
# 提取title和contentdef 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的内容中包含了
突然感觉时间不够用啊,花了两天功夫才提取了文章的标题和正文,每天只有晚上一点点时间来研究Python,时间好少的感觉有木有。
今天就到这里了,明天继续研究,如何将content内容中的特殊字符串转成常规的字符串。
感兴趣的朋友可以关注一下哈,和我一起来尝试将头条文章保存到本地存储。有经验的朋友可以多提提意见哈。
最近网上各种版权事件飞起,什么合法不合法的,什么侵犯权益的啊,好烦的有木有。本文在这里加一个免责说明吧,本文纯属用于学习、研究、探讨,不做商业用途,如果有侵权或其他违法情况,可以联系我删除,谢谢。