BeautifulSoup爬虫類入門(二)-非同期ロードデータ
2267 ワード
非同期ロードは非ブロックロードとも呼ばれ、ブラウザはダウンロードしてjsを実行すると同時に、後続のページの処理を継続します.
一般的な形式は、ドロップダウンページに新しい内容が表示されます.
今回は、これらの動的にロードされたコンテンツを抽出します.
KnewOneサイトのdiscoverページを例にとると、ドロップダウンは新しいコンテンツを取得し、ページのソースコードをチェックすると、ドロップダウンに伴って新しいdivが表示され、Pageの数値が変化していることがわかります
爬取コードは次のとおりです.
一般的な形式は、ドロップダウンページに新しい内容が表示されます.
今回は、これらの動的にロードされたコンテンツを抽出します.
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)