准备进行一个小项目,爬取人民日报一些文章,用来好好学习及分析下人民日报的用词,领会下中央精神~~。
import requests
import re
from bs4 import BeautifulSoup
url = r"http://paper.people.com.cn/rmrb/html/2020-09/11/nw.D110000renmrb_20200911_1-01.htm"
res = requests.get(url)
res.encoding = "utf-8" # 以utf-8的编码格式来解析网页
pat = r'<!--enpcontent-->(.*)<!--/enpcontent-->'
wz = re.search(pat, res.text)
print(wz.group(1))
输出结果:
<P> 中国人均水资源量是世界人均的1/4,而西海固,又是全………句号。</p>
几点说明:
- 为什么引用了BeautifulSoup却没有用? 本来是准备用的,结果发现用不上,查看源代码发现文章的内容直接放在
<!--enpcontent--> <!--/enpcontent-->
这对标签里面,所以可以用正则表达式查找。 - 为什么输出的文章里带有p标签? 因为p标签可以保存文章的段落信息,方便以后展示。
- 为什么要用wz.group(1)? 因为我要获得括号里的分组,group(0)是匹配上的完整字符串。
写这篇文章是因为看到https://blog.csdn.net/wenxuhonghe/article/details/90047081 这个文章,我也想自己试下,所以决定暂时不看作者的编码,自己尝试下,最后再与他的实现做个对比。