Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将CHEERIO.js用于此HTML? 巴福_Javascript_Node.js_Web Scraping_Cheerio - Fatal编程技术网

Javascript 如何将CHEERIO.js用于此HTML? 巴福

Javascript 如何将CHEERIO.js用于此HTML? 巴福,javascript,node.js,web-scraping,cheerio,Javascript,Node.js,Web Scraping,Cheerio,我想访问HREF属性中的url。和SPAN中的文本—仅第一个列表项的文本 我所拥有的一切都是有效的,但我正在寻找更好的学习方式 var url=$('div.A').children().children().children().children().children()[0].attribs.href var title=$('div.A').children().children().children().children().children()[0]。children[2]。child

我想访问HREF属性中的url。和SPAN中的文本—仅第一个列表项的文本

我所拥有的一切都是有效的,但我正在寻找更好的学习方式

var url=$('div.A').children().children().children().children().children()[0].attribs.href


var title=$('div.A').children().children().children().children().children()[0]。children[2]。children[0]。数据

您希望使用更好的选择器字符串来针对感兴趣的元素和属性。确切地说,您的选择有多模糊或精确,需要权衡与DOM结构的耦合太过紧密,因此对HTML的一些不相关的更改意味着您的选择器不再匹配,或者使用了太模糊的选择器并匹配了超出您意图的更多内容

  • 模糊:
    'a'
    (找到每个锚)
  • '.A'
    (div class=“A”中的每个锚点)
  • 推荐:
    (必须是列表的一部分)
  • 疯狂特定:
    'div.A section.B ul.list li A'


酷!谢谢抱歉,必须进行编辑列表中有多个项目,因此当选择“SPAN”时,它会打印出每个“SPAN”的文本。如何抓住第一个“a”下的第一个“SPAN”。将假定“div.A section.B ul.list li A span.text()”。。。但这会打印出所有的span项目。find('span')还获取所有span,而不仅仅是第一个span。您可以使用“:first child”伪类选择器或
.first()
jQuery/Cheerio方法。啊,是的,.first()有效!“:first child”伪类选择器不起作用,研究告诉我,只有当目标实际上是第一个子,在本例中,“small”是“first child”时,它才会起作用。
<div class="A">
<section class="B" data-vr-zone="B">
    <header class="C"> BarFoo</header>
    <ul class="list">
        <li data-vr-contentbox=""> 
            <a href="http://www.foobar.com/.../html">
                <small>BarBar</small> 
                <span>Foo Bar foobarbar FooFoo?</span>
            </a>

        </li>
        <li data-vr-contentbox=""> 
            <a href="http://www.foofoobar.com/.../html">
                <small>BarBarBar</small> 
                <span>Foo foo FooFoo?</span>
            </a>

        </li>
var link = $('.A li a');
var href = link.attr('href');
var spanText = link.find('span').first().text();