栏目导航

新闻资讯

最新消息

当前位置:立即博真人app > 新闻 > 最新消息 >

爬取今日头条NBA版块

发布时间:2023-12-16

  今天给大家带来的文章是作者学完爬虫后写的一个Demo,作者是个詹密,平时主要逛逛虎扑。所以就想着抓些NBA新闻来看看。如果有抓过今日头条新闻的读者肯定知道今日头条的新闻内容是通过Ajax加载。不同于一般的静态页面。所以今天作者也就专门的这一类的网站写一篇技术心得。废话不多说。我们开始进入正题吧。

  作者在这里是用Selenium模拟浏览器运行的方式来实现。使用Selenium抓取页面的的好处用一句话来概括就是:可见即可爬。即我们就不用去管网页内部具体的渲染页面。我们需要安装好Selenium库和Chrome浏览器以及ChromeDriver。解析库BeautifulSoup。数据抓取下来后我们可以保存到数据库中,也可以以文件的方式保存。

  在抓取之前,首先要分析抓取的逻辑。我们打开今日头条的NBA版块,如下图所示。

  我们把鼠标的光标定在任意一篇新闻标题上,右键检查,打开开发者工具,可以看到新闻的标题和链接都在class标签为“link title”里如下图所示。

  点击此文章的链接,即可跳转到此文章的详细页面。然后我们打开开发者工具。就可以提取新闻的标题,作者,来源,内容等一些我们想要的信息了。如下图所示。

  刚刚我们分析了网页的逻辑,那么现在我们就用程序来实现今日头条NBA新闻的抓取吧。

  拿到每篇文章的链接后,我们就可以访问它,获得我们想要的信息了,实现如下。

  好了,到这里我们已经把我们想要的新闻抓取下来了,可是还有一个问题。因为今日头条是Ajax加载页面。所以我们不可能通过修改页数来获取更多的新闻。我们只能获得当前我们访问页面显示的新闻。那么如果我们想获得更多的新闻。应该怎么办呢。作者在这里用了一个模拟鼠标拖动的方法,以此来解决我们想获得更多内容的窘境。代码如下。

  如果有想进一步挑战的读者可以在完成本项目后,可以尝试用Scrapy框架来实现。

Copyright © 2002-2023 立即博真人app 版权所有