实时抓取网页数据(网页加载数据的另一种方式——通过API(Programming) )
优采云 发布时间: 2022-03-21 01:15实时抓取网页数据(网页加载数据的另一种方式——通过API(Programming)
)
网页加载数据的另一种方式——通过API(应用程序编程接口)加载数据网页通过API获取数据并实时更新内容。互动的方式。网络
网络记录从浏览器的开发者工具打开到页面加载的所有请求。如果页面加载后打开页面,可能是空的,我们可以打开开发者工具刷新页面
爬虫中常用的请求类型有All、XHR、Img、Media。只需了解其余部分:
常用的请求信息,如请求名称、状态码、类型、数据大小、耗时等。这些都比较简单,只要我们能理解和知道它们的意思就行。
在所有的请求类型中,有一个非常重要的类型叫做 XHR。让我提前告诉你,完整的电影评论在那里。那么 XHR 到底是什么?
找到真正的链接获取评论数据和相关的请求头参数,然后我们可以尝试通过爬虫爬取数据
import requests
headers = {
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36',
'referer': 'http://movie.mtime.com/'
}
res = requests.get('http://front-gateway.mtime.com/library/movie/comment.api?tt=1641893701852&movieId=251525&pageIndex=2&pageSize=20&orderType=1', headers=headers)
print(res.text)
因为查询字符串比较长,requests.get()方法提供了params参数,可以让我们以字典的形式传递链接的查询字符串参数,让代码看起来更简洁明了
也就是说链接中的tt=52&movieId=251525&pageIndex=2&pageSize=20&orderType=1可以拆分成字典:
params = {
"tt": "1641893701852",
"movieId": "251525",
"pageIndex": "2",
"pageSize": "20",
"orderType": "1"
}
res = requests.get(
'http://front-gateway.mtime.com/library/movie/comment.api',
params=params,
headers=headers
)
import requests
headers = {
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36',
'referer': 'http://movie.mtime.com/'
}
params = {
"tt": "1646731402452",
"movieId": "251525",
"pageIndex": "1",
"pageSize": "20",
"orderType": "1"
}
res = requests.get(
'http://front-gateway.mtime.com/library/movie/comment.api',
params=params,
headers=headers
)
print(res.text)
print(type(res.text))