龙空技术网

纯粹干货,Python爬虫如何通过 API 获取动态数据?

青年学记 208

前言:

今天我们对“爬虫api数据获取”可能比较讲究,兄弟们都需要了解一些“爬虫api数据获取”的相关资讯。那么小编也在网络上搜集了一些有关“爬虫api数据获取””的相关知识,希望姐妹们能喜欢,咱们快快来了解一下吧!


在之前的几篇文章当中,我们学习的都是静态数据的爬取,即所取数据都是在网页上一直存在的,不会变动的数据,这些数据的获取是比较简单的。


可是,在爬虫实际的应用场景当中,很多数据都不是静态存在的,它们大多数都是以动态的形式存在,即随用随取,不用不取。只有在查看此数据内容的才会出现,其他时间都在数据库当中。


这样的做法减轻了网页的臃肿程度,不过对于数据库的应用水平和网页编写水平要求较高。


那作为爬虫程序,如何获取动态数据呢?


这就是这篇文章要讲解的内容。


前文学记已经提到过,现在有很多网页的数据是动态生成的,这就意味着在浏览器窗口中查看网页源代码时无法在HTML代码中找到这些内容,也就是说我们之前学习的抓取静态数据的方式无法运转。


在这种情况下,想要获取数据,就需要找到获取这些数据的网络API接口。


那么,什么是API接口呢?


API,即 Application Programming Interface,应用程序接口。


API 的功能是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问原码。


用人话来说就是网页制作人员只需要将 API 接口与所做网页衔接即可,而不需要网页制作人员自己去构建数据库。也就是网页前端与数据后端的连接渠道。


继上面的话题,如何获取网页的API接口呢?


这里以网站“百度图片”为例,打开网页之后,按下F12 键,即可显示网页源代码,如图所示:

当然在这个界面是找不到 API 接口的,在此界面中找到 NETWORK 选项,点击即可查看 API 接口。

只要找到 API 接口,就可以进行下一步工作了。


Selenium


对于新手来说,可以使用自动化测试工具Selenium,它提供了浏览器自动化的API接口,这样就可以通过操控浏览器来获取动态内容。


当然,想要使用先要安装,按照惯例,我们打开CMD,输入pip3 install selenium,按下回车键,让系统自己下载安装即可。


接下来,我们使用Selenium来实践一下。


我们打开中国最大同性交友网站— BiBiLiLi 弹幕网。

打开哔哩哔哩直播,用 Selenium 来获取一下各个直播间的封面图。代码如下:


from bs4 import BeautifulSoup

from selenium import webdriver

from selenium.webdriver.common.keys import Keys


def main():

driver = webdriver.Chrome()

driver.get(';)

soup = BeautifulSoup(driver.page_source, 'lxml')

for img_tag in soup.body.select('img[src]'):

print(img_tag.attrs['src'])


if __name__ == '__main__':

main()


在上面的程序中,我们通过Selenium实现对Chrome浏览器的操控,如果要操控其他的浏览器,可以创对应的浏览器对象,例如Firefox、IE等。


具体的关于 Selenium 的更多功能,可以到其官方网站自行了解。


如果想学习更多科技知识,可以点击关注。


如果对文章中的内容有什么困惑的地方,可以在评论区提出自己的问题,学记同大家一起交流,解决各种问题,一起进步。


青年学记 陪伴着各位青年


作者:青年学记 一名不断进步的程序猿


一起学习 一起进步


走向自立

标签: #爬虫api数据获取 #python调用api接口获取数据