无法创建循环以从网页中获取所有标题
Can't create a loop to fetch all the titles from a webpage
我在 python
中结合 写了一个脚本pyppeteer
抓取 titles
和 links
到网页中不同 post 的标题。问题是当我 运行 我的脚本时,它可以解析第一个 title
和第一个 post 的 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://whosebug.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://whosebug.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())
我在 python
中结合 写了一个脚本pyppeteer
抓取 titles
和 links
到网页中不同 post 的标题。问题是当我 运行 我的脚本时,它可以解析第一个 title
和第一个 post 的 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://whosebug.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://whosebug.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())