matthewmueller / x-ray

The next web scraper. See through the <html> noise.
MIT License
5.86k stars 350 forks source link

li works but div is not #382

Open x4080 opened 2 years ago

x4080 commented 2 years ago

html file :

<div class="items">
    <div class="someclass">
        <h2>first item</h2>

        <div data-video="av1">a</div>
        <div data-video="bv1">b</div>
        <div data-video="cv1">c</div>

        <li data-video="av1">a</li>
        <li data-video="bv1">b</li>
        <li data-video="cv1">c</li>

    </div>
</div>

if we find li with data=video, it works fine

x(html, '.items>.someclass',{
    tags: ['li@data-video']
}).then(function (res) {
    console.log(res) // output is json 
})
    .catch(function (err) {
        console.log(err) // handle error in promise
    })

result is { tags: [ 'av1', 'bv1', 'cv1' ] }

but if we try to find div with data=video result is null

x(html, '.items>.someclass',{
    tags: ['div@data-video']
}).then(function (res) {
    console.log(res) // output is json 
})
    .catch(function (err) {
        console.log(err) // handle error in promise
    })

result is { tags: [ null ] }

Why is it different between li and div ? I try to rename div to divx, and it works, just div that wont work