python 提取网页正文_Python爬虫自学笔记:分析头条文章网页源文件

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

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

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

7755998e7a3b4ad28696f22395ec6888

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

下面来看一下页面的源文件,发现正文的内容没有在常规的

a309417a55bc4643ad6b3da981065c89

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

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

4d0971eae5a94e68850d55db90ddc4e0

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

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

a904461738a649bdb9fbd3d633969eb5

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)

代码运行结果如下:

745c78a2054b4f2aa172276284402fbd

如上图所示,content的内容中包含了

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值