簡體   English   中英

無法創建循環以從網頁中獲取所有標題

[英]Can't create a loop to fetch all the titles from a webpage

我用pythonpyppeteer結合編寫了一個腳本,以抓取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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM