python学习-爬取异步网页的数据

在使用网站中,我们会发现一种网站的翻页是自动实现的,这里其实是利用js来自动加载而成,对于这样的网站,我们必须采取新的策略。

参考代码:

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)) #这里是2个字符串相加,就成了下一页的网址
                time.sleep(2)
get_more_pages(1,10)

好了,以上是全部代码?那这段代码是如何找到不同页面的规律的?
因为网页是异步加载,所以,我们先点击 检查 ,进入网页元素页面,点击 network,再点击 XHR ,下翻页面,会看到name行有新的网页地址进来,这里就是我们要的新网页,从新网页中找到规律:
该网页的规律是在基础网页的后面加数字,翻一页,增加 +1,所以,代码就这么表示了 get_page(url+str(one))

示意
python学习-爬取异步网页的数据_第1张图片
解说

你可能感兴趣的:(python学习-爬取异步网页的数据)