在部分代码上用编剧抓取文本很慢(使用 page.locator)

Scrape text with playwright is slow on part of the code (using page.locator)

我在剧作家里做了一个剧本,来抓取一些文字。 这是我遇到问题的部分,在这里我使用定位器抓取了一个系列名称:

# Series
global nfo_series
try:
  nfo_series = page.locator("#Series > span:nth-child(1)")
  nfo_series = nfo_series.inner_text()
  logger_scraper.info('nfo_series is now:%s', nfo_series)
except:
  logger_scraper.info('This book as no series.')

它有效,当系列不存在时被跳过,但代码需要 30 秒才能继续,日志在下面,问题是什么,我可以改进吗?

19:28:31 nfo_author is now:Thomas Fincham
19:29:01 This book as no series.

我认为是因为 try 语句,但为什么呢?因为我有相同的代码,例如,作者,它很快。 我知道用playwright不好,最好是其他模块。

剧作家的默认计时器是 30 秒。 所以在try部分,它尝试了30秒来获取系列,但是有none,所以只过了30秒,它就异常了。

您可以在调用 inner_text() 时设置自定义超时。

参见:https://playwright.dev/python/docs/api/class-locator#locator-inner-text