python调用api接口教程,如何使用api接口获取数据

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

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

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

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

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

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

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

那么,什么是API接口呢?

API,即ApplicationProgramming Interface,应用程序接口。

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

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

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

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

python调用api接口教程,如何使用api接口获取数据

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

python调用api接口教程,如何使用api接口获取数据

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

Selenium

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

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

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

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

python调用api接口教程,如何使用api接口获取数据

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

from bs4 importBeautifulSoup

fromseleniumimportwebdriver

from selenium.webdriver.common.keys importKeys

defmain():

driver= webdriver.Chrome()

driver.get('https://live.bilibili.com/all?visit_id=8fdamcyvulw0')

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

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

print(img_tag.attrs['src'])

if__name__ == '__main__':

main()

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

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