[英]Can't create a loop to fetch all the titles from a webpage
我用python
和pyppeteer
結合編寫了一個腳本,以抓取titles
和指向網頁上不同文章的標題的links
。 問題是,當我運行腳本時,它可以解析第一個title
和該處第一篇文章的link
。 我的意圖是創建一個循環以獲取所有這些信息。 由於我剛開始使用該庫,因此我找不到如何創建循環的想法。 任何幫助將不勝感激。
到目前為止,我的腳本是:
import asyncio
from pyppeteer import launch
async def get_titles_n_links():
wb = await launch(headless=True)
page = await wb.newPage()
await page.goto('https://stackoverflow.com/questions/tagged/web-scraping')
element = await page.querySelector('.question-hyperlink')
title = await page.evaluate('(element) => element.textContent', element)
link = await page.evaluate('(element) => element.href', element)
print(f'{title}\n{link}\n')
await wb.close()
asyncio.get_event_loop().run_until_complete(get_titles_n_links())
您的代碼將類似於:
import asyncio
from pyppeteer import launch
async def get_titles_n_links():
wb = await launch(headless=True)
page = await wb.newPage()
await page.goto('https://stackoverflow.com/questions/tagged/web-scraping')
elements = await page.querySelectorAll('.question-hyperlink')
for element in elements:
title = await page.evaluate('(element) => element.textContent', element)
link = await page.evaluate('(element) => element.href', element)
print(f'{title}\n{link}\n')
await wb.close()
asyncio.get_event_loop().run_until_complete(get_titles_n_links())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.