BeautifulSoup爬虫類入門(二)-非同期ロードデータ

2267 ワード

非同期ロードは非ブロックロードとも呼ばれ、ブラウザはダウンロードしてjsを実行すると同時に、後続のページの処理を継続します.
一般的な形式は、ドロップダウンページに新しい内容が表示されます.
今回は、これらの動的にロードされたコンテンツを抽出します.
KnewOneサイトのdiscoverページを例にとると、ドロップダウンは新しいコンテンツを取得し、ページのソースコードをチェックすると、ドロップダウンに伴って新しいdivが表示され、Pageの数値が変化していることがわかります
爬取コードは次のとおりです.
import  requests
from  bs4 import BeautifulSoup
import time
url='https://knewone.com/discover?page=2'
def getPage(url):
        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')
        for img,title in zip(imgs,titles):
            data={
                'img':img.get('src'),
                'title':title.get('title')
            }
            print(data)

def get_more(start,end):#          
    for one in range(start,end):
        getPage(url+str(one))
        time.sleep(3)

get_more(2,5)