抓取网页数据(下拉下滑栏时会发送一个新异步发送URL(图) )
优采云 发布时间: 2021-09-16 00:17抓取网页数据(下拉下滑栏时会发送一个新异步发送URL(图)
)
常见的动态数据是当我们拉下滑动条时可以动态加载到网页上的新数据。例如,网站:
我们继续拉动滑动条,新数据将不断加载。但网页的URL保持不变。但事实上,当我们下拉时,浏览器将发送一个新的异步请求来获取这些新数据,但新的异步请求的URL不会显示在浏览器上。因此,获取网页中动态数据的关键是获取异步发送URL并找出其格式规律
获取异步发送的URL
在chrome上打开网页–>;右键单击查看–>;单击网络–>;单击XHR–>;用于加载动态数据的下拉页面–>;获取发送的请求–>;获取请求头的请求URL信息
通过以上步骤,我们得到了异步请求的URL。通过分析,我们可以发现异步请求URL之间的区别在于“page=XX”部分。如果我们想要抓取10个动态数据,我们需要10个URL,其中页面的值从1到10不等。下面给出了完整的爬行代码。爬行原理与之前相同,只是URL是异步请求的URL
from bs4 import BeautifulSoup
import requests
import time
url = 'https://knewone.com/discover?page='
def get_page(url,data=None):
wb_data = requests.get(url)
soup = BeautifulSoup(wb_data.text,'lxml')
imgs = soup.select('a.cover-inner > img')
titles = soup.select('section.content > h4 > a')
links = soup.select('section.content > h4 > a')
if data==None:
for img,title,link in zip(imgs,titles,links):
data = {
'img':img.get('src'),
'title':title.get('title'),
'link':link.get('href')
}
print(data)
def get_more_pages(start,end):
for one in range(start,end):
get_page(url+str(one))
time.sleep(2)
get_more_pages(1,10)