【问题标题】:How To Retrieve the Value of a textarea如何检索文本区域的值
【发布时间】:2020-05-01 01:49:31
【问题描述】:

我正在尝试使用 Cheerio 访问文本区域内的文本,但其文本未显示在 HTML Dom 中。

这是文本区域的 HTML:

<textarea id="MainContentPlaceHolder_txtGtin-inputEl" name="MainContentPlaceHolder_txtGtin" rows="4" cols="20" readonly="readonly" class="x-form-field x-form-text x-form-textarea" autocomplete="off" aria-invalid="false" data-errorqtip="" style="width: 100%;"></textarea>

这是浏览器中文本区域的图片:

我猜它是某种服务器生成的文本,不会出现在 Dom 中(是吗?)。

如何从页面的 HTML 和代码中获取文本?

我正在使用 Puppeteer + Cheerio 来抓取页面,如果您知道任何一种方法可以帮助我解决这个问题,我将不胜感激。

【问题讨论】:

  • textarea 的值一旦成为 DOM 的一部分就不会存储在它的开始和结束标记之间,该文本用于设置实际保存该值的属性的初始值。您应该能够以与输入 stackoverflow.com/a/19790446/1650337 相同的方式获取 textarea 的值
  • 我知道,当我尝试使用 Cheerio 的 ``` .val() ``` 函数来获取 textarea 的值时,它返回 undefined ,我猜我需要使用别的东西。
  • 听起来很像,如果问题是关于检索值,您可能需要编辑问题/标题以使其更清晰,并添加一些您尝试过的示例。
  • 到目前为止你尝试了什么?
  • @hardkoded 任何我能想到的东西,如果内容仍在加载,请再等几秒钟,蚂蚁试图用 puppeteer 的评估()函数访问它,但我没有成功

标签: html typescript web-scraping puppeteer cheerio


【解决方案1】:

页面加载后,JavaScript 可能会添加文本内容。在 Puppeteer 检测到加载的事件后,您可能需要等待一两秒才能获取内容。

另外,检查该文本是否是使用placeholder 属性而不是标准 DOM 内容添加的。

【讨论】:

    猜你喜欢
    • 2010-10-26
    • 2011-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-05
    • 1970-01-01
    • 2014-12-23
    • 1970-01-01
    相关资源
    最近更新 更多