1

我已经编写了一个脚本来python结合从网页pyppeteer中抓取不同帖子titleslinks标题。问题是当我运行我的脚本时,它可以解析那里的第一个titlelink第一个帖子。我的意图是创建一个循环来获取它们。由于我对使用这个库很陌生,所以我不知道如何创建一个循环。任何帮助将不胜感激。

到目前为止我的脚本:

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())
4

1 回答 1

2

您的代码将如下所示:

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())
于 2018-11-26T11:20:52.107 回答