我已经结合 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())
答案 0 :(得分: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())