te')); return $arr; } /* 遍历用户所有主题 * @param $uid 用户ID * @param int $page 页数 * @param int $pagesize 每页记录条数 * @param bool $desc 排序方式 TRUE降序 FALSE升序 * @param string $key 返回的数组用那一列的值作为 key * @param array $col 查询哪些列 */ function thread_tid_find_by_uid($uid, $page = 1, $pagesize = 1000, $desc = TRUE, $key = 'tid', $col = array()) { if (empty($uid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('uid' => $uid), array('tid' => $orderby), $page, $pagesize, $key, $col); return $arr; } // 遍历栏目下tid 支持数组 $fid = array(1,2,3) function thread_tid_find_by_fid($fid, $page = 1, $pagesize = 1000, $desc = TRUE) { if (empty($fid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('fid' => $fid), array('tid' => $orderby), $page, $pagesize, 'tid', array('tid', 'verify_date')); return $arr; } function thread_tid_delete($tid) { if (empty($tid)) return FALSE; $r = thread_tid__delete(array('tid' => $tid)); return $r; } function thread_tid_count() { $n = thread_tid__count(); return $n; } // 统计用户主题数 大数量下严谨使用非主键统计 function thread_uid_count($uid) { $n = thread_tid__count(array('uid' => $uid)); return $n; } // 统计栏目主题数 大数量下严谨使用非主键统计 function thread_fid_count($fid) { $n = thread_tid__count(array('fid' => $fid)); return $n; } ?>javascript - Puppeteer - Search for element by div class - Return all div classes for Element - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Puppeteer - Search for element by div class - Return all div classes for Element - Stack Overflow

programmeradmin3浏览0评论

I have a site I need to scrape, to find a list of classes on a div, by searching for a particular div class.

For instance, if we have the code:

//HTML on site
<div class="main">Main Stuff</div>
<div class="class1 class 2 specialclass">Other Stuff</div>
<div class="footer">Footer Stuff</div>'

I need to search for "special class" as a div class, and return the list of classes for that div, so I would want to return: class1 class2 specialclass

I'm using a Wikibooks site as an example and running this code:

//Puppeteer Code
const puppeteer = require('puppeteer')
const devices = require('puppeteer/DeviceDescriptors');

const browser = await puppeteer.launch();

const page = await browser.newPage();
await page.goto('/');

const myclassname = await page.evaluate(() => 
document.querySelector('.lang1').innerText);

console.log(myclassname);

It searches for the div with a class of lang1, the default language div near the top of the screen, and returns me the text of the object, but I don't know what to change innerText to in order to get the class names of the object, so it will return central-featured-lang lang1, all of the classes of that object.

I have a site I need to scrape, to find a list of classes on a div, by searching for a particular div class.

For instance, if we have the code:

//HTML on site
<div class="main">Main Stuff</div>
<div class="class1 class 2 specialclass">Other Stuff</div>
<div class="footer">Footer Stuff</div>'

I need to search for "special class" as a div class, and return the list of classes for that div, so I would want to return: class1 class2 specialclass

I'm using a Wikibooks site as an example and running this code:

//Puppeteer Code
const puppeteer = require('puppeteer')
const devices = require('puppeteer/DeviceDescriptors');

const browser = await puppeteer.launch();

const page = await browser.newPage();
await page.goto('https://www.wikibooks/');

const myclassname = await page.evaluate(() => 
document.querySelector('.lang1').innerText);

console.log(myclassname);

It searches for the div with a class of lang1, the default language div near the top of the screen, and returns me the text of the object, but I don't know what to change innerText to in order to get the class names of the object, so it will return central-featured-lang lang1, all of the classes of that object.

Share Improve this question edited Aug 1, 2018 at 18:11 SpotDetector 728 bronze badges asked Aug 1, 2018 at 17:10 Walter JohnsonWalter Johnson 131 gold badge1 silver badge4 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 11

Consider the following element from the webpage you specified:

<div class="central-featured-lang lang1" lang="en">...</div>

You can use className or getAttribute('class') to obtain the content of the class attribute of an element:

const myclassname = await page.evaluate(() => document.querySelector('.lang1' ).className);

console.log(myclassname); // Returns "central-featured-lang lang1"

Or, you can return an iterable array of the classes of an element using classList:

const myclassnamearray = await page.evaluate(() => [...document.querySelector('.lang1').classList]);

console.log(myclassnamearray[0]); // Returns "central-featured-lang"
console.log(myclassnamearray[1]); // Returns "lang1"

use

.getAttribute("class");

for example

var x = document.getElementsByTagName("H1")[0].getAttribute("class");
发布评论

评论列表(0)

  1. 暂无评论