python學(xué)習(xí)-爬取異步網(wǎng)頁的數(shù)據(jù)

在使用網(wǎng)站中,我們會發(fā)現(xiàn)一種網(wǎng)站的翻頁是自動(dòng)實(shí)現(xiàn)的,這里其實(shí)是利用js來自動(dòng)加載而成,對于這樣的網(wǎng)站,我們必須采取新的策略。

參考代碼:

from bs4 import BeautifulSoup
import requests
import time
url = 'https://knewone.com/discover?page='
# 定義一個(gè)網(wǎng)頁的爬取行為
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)
# 定義許多網(wǎng)頁的資料爬取
def get_more_pages(start,end):
        for one in range(start,end):
                get_page(url+str(one)) #這里是2個(gè)字符串相加,就成了下一頁的網(wǎng)址
                time.sleep(2)
get_more_pages(1,10)

好了,以上是全部代碼?那這段代碼是如何找到不同頁面的規(guī)律的?
因?yàn)榫W(wǎng)頁是異步加載,所以,我們先點(diǎn)擊 檢查 ,進(jìn)入網(wǎng)頁元素頁面,點(diǎn)擊 network,再點(diǎn)擊 XHR ,下翻頁面,會看到name行有新的網(wǎng)頁地址進(jìn)來,這里就是我們要的新網(wǎng)頁,從新網(wǎng)頁中找到規(guī)律:
該網(wǎng)頁的規(guī)律是在基礎(chǔ)網(wǎng)頁的后面加數(shù)字,翻一頁,增加 +1,所以,代碼就這么表示了 get_page(url+str(one))

示意
解說
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容