爬虫:中国新闻网文章采集

发布于 2023-12-07 15:27:20

在现在这个信息爆炸的时代,要想高效的获取数据,爬虫是非常好用的。下面通过一个爬虫爬取中国新闻网(chinanews.com)的部分中新热榜文章数据

技术栈:
HTML JavaScript jQuery

开始教学:
1.声明按钮,引入jQuery,为按钮赋予点击事件
image.png

2.我们向目标网站发起GET请求
image.png
image.png
data 和 status 是回调函数的形参(形式参数),data所代表的是网址返回的数据,status是请求的状态,我们可以根据status所返回的状态进行对应的逻辑判断,如失败提醒。我们在控制台直接输出data,查看是否返回网页的数据。
image.png
在这我们可以清楚的看到,我们拿到了网站的HTML代码,但是我们无法直接使用,我们需要对该数据集进行处理,我们打开中国新闻网,打开F12,触摸 “中新热榜”该栏目
image.png
这就是中心热榜所在的HTML,我们可以清楚的看到,他的数据集是在class为 rdph-list rdph-list2 下ul的li中,那就好办了,我们直接使用 jQuery 中的选择器(Selector)技术
image.png
$(data):这里 $(...) 是 jQuery 的语法,表示将 data 转换为 jQuery 对象。通常,data 是一个包含 HTML 内容的字符串。
.find('.rdph-list.rdph-list2 ul li'):这是 jQuery 的 find 方法,用于在当前 jQuery 对象的后代元素中查找匹配选择器的元素。选择器 '.rdph-list.rdph-list2 ul li' 表示选择具有指定类名的 <ul> 元素的所有 <li> 子元素。

打印在控制台之后我们发现,的确是输出了所有的li,我们点开一个li,查看我们所需要的主要数据:
image.png
的确,我们获取到了我们所需要的标题,和对应的a标签(a标签前往的是详情页),接下来,我们该通过循环,获取每一个标题数据和a标签
image.png
JQ each方法详解

再次打开控制台,我们发现我们正常获取到了我们所需要的标题和a标签数据
image.png
这下好了,我们只需要进行正则匹配,将a标签的href分离出来,因为这部分代码经常被调用,我们声明成一个函数
image.png
这样,我们只需要调用extractSrcFromHtml,传入对应的HTML中的a标签,函数就会自行分离,我们调用函数后输出函数返回结果,进行查看
image.png
成功输出URL,说明执行没有问题。现在,我们将标题渲染到我们自己的网页中,我们在HTML制作一个id为article_list的列表,通过append添加li数据与标题
image.png
image.png
这里我们可以看到,输出成功了,说明爬虫执行的非常完美。

2023-12-07任务:
1.复现以上爬虫
2.根据上述爬取的href,对文章详情页进行标题,发布时间,内容的采集

截至时间:2023-12-07 晚8:30

11 条评论

发布
问题