选择具有相同类名的多个标签?
Selecting multiple tags with the same className?
使用此语法:
x('http://www.viadeo.com/fr/company/unicef',
'.page-content',
[{
img:'img@src',
bio:'.pan-desc-description',
org:'.pan-desc-footer-element @element-value',
link: '.element-value a@href',
**twitter:'.element-value a@href'** // I get the previous link not the twitter one
}]).write('result.json')
网站中有多个具有该特定类名的项目,但只有 return 第一个。有没有办法抓住所有这些,也许我可以用那个 return 做一个 .limit?如果它在文档中,我深表歉意,我已经通读了两遍,看起来好像没有在任何地方明确说明。
你只需要把你想要的"split"用方括号括起来。
这是对我有用的代码。
var Xray = require('x-ray');
var x = Xray();
x('http://www.viadeo.com/fr/company/unicef',
'.page-content',
{
img:'img@src',
bio:'.pan-desc-description',
org:'.pan-desc-footer-element @element-value',
link: ['.element-value a@href'],
//twitter:'.element-value a@href'
})
(function(err, title) {
console.log(title)
});
我还删除了外括号,因为页面内容永远不会有超过一个元素,所以您永远不会想要超过一个。
您可以利用 chrome 检查器工具来获得合适的选择器,
在这里,这段代码对我有用,
var Xray = require('x-ray');
var x = Xray();
x('http://www.viadeo.com/fr/company/unicef',
'.page-content',
[{
img:'img@src',
bio:'.pan-desc-description',
org:'.pan-desc-footer-element @element-value',
link: '.element-value a@href',
twitter:'.mbs:nth-child(4) a@href' // or use div.element-value.gu.gu-last a@href
}]).write('result.json')
然后,我们得到了这个结果。
[
{
"img": "http://static8.viadeo-static.com/fzv6VNzGukb7mt5oV0Nl-wQxCDI=/fit-in/200x200/filters:fill(white)/7766b960b98f4e85affdab7ffa9863c7/1434471183.jpeg",
"bio": "Le Fonds des Nations unies pour l'enfance (abrégé en UNICEF ou Unicef pour United Nations International Children's Emergency Fund en anglais) est une agence de l'ONU consacrée à l'amélioration et à la promotion de la condition des enfants. Son nom était originellement United Nations International Children's Emergency Fund, dont elle a conservé l'acronyme. Elle a activement participé à la rédaction, la conception et la promotion de la convention relative aux droits de l'enfant (CIDE), adoptée suite au sommet de New York en 1989. Son revenu total en 2006 a été de 2 781 millions Dollar US.\r\n L'UNICEF a reçu le prix Nobel de la paix en 1965.",
"link": "http://www.unicef.org/",
"twitter": "http://www.twitter.com/UNICEF "
}
]
以下是如何在 chrome 上获得合适的选择器:
首先你右击并点击检查。
然后你点击复制选择器,并使用它。
当您复制选择器时,它会这样说,
#pan-desc > div.pan-desc-grey > div > div:nth-child(4) > div.element-value.gu.gu-last > a
可以直接使用,也可以提炼出来
使用此语法:
x('http://www.viadeo.com/fr/company/unicef',
'.page-content',
[{
img:'img@src',
bio:'.pan-desc-description',
org:'.pan-desc-footer-element @element-value',
link: '.element-value a@href',
**twitter:'.element-value a@href'** // I get the previous link not the twitter one
}]).write('result.json')
网站中有多个具有该特定类名的项目,但只有 return 第一个。有没有办法抓住所有这些,也许我可以用那个 return 做一个 .limit?如果它在文档中,我深表歉意,我已经通读了两遍,看起来好像没有在任何地方明确说明。
你只需要把你想要的"split"用方括号括起来。
这是对我有用的代码。
var Xray = require('x-ray');
var x = Xray();
x('http://www.viadeo.com/fr/company/unicef',
'.page-content',
{
img:'img@src',
bio:'.pan-desc-description',
org:'.pan-desc-footer-element @element-value',
link: ['.element-value a@href'],
//twitter:'.element-value a@href'
})
(function(err, title) {
console.log(title)
});
我还删除了外括号,因为页面内容永远不会有超过一个元素,所以您永远不会想要超过一个。
您可以利用 chrome 检查器工具来获得合适的选择器,
在这里,这段代码对我有用,
var Xray = require('x-ray');
var x = Xray();
x('http://www.viadeo.com/fr/company/unicef',
'.page-content',
[{
img:'img@src',
bio:'.pan-desc-description',
org:'.pan-desc-footer-element @element-value',
link: '.element-value a@href',
twitter:'.mbs:nth-child(4) a@href' // or use div.element-value.gu.gu-last a@href
}]).write('result.json')
然后,我们得到了这个结果。
[
{
"img": "http://static8.viadeo-static.com/fzv6VNzGukb7mt5oV0Nl-wQxCDI=/fit-in/200x200/filters:fill(white)/7766b960b98f4e85affdab7ffa9863c7/1434471183.jpeg",
"bio": "Le Fonds des Nations unies pour l'enfance (abrégé en UNICEF ou Unicef pour United Nations International Children's Emergency Fund en anglais) est une agence de l'ONU consacrée à l'amélioration et à la promotion de la condition des enfants. Son nom était originellement United Nations International Children's Emergency Fund, dont elle a conservé l'acronyme. Elle a activement participé à la rédaction, la conception et la promotion de la convention relative aux droits de l'enfant (CIDE), adoptée suite au sommet de New York en 1989. Son revenu total en 2006 a été de 2 781 millions Dollar US.\r\n L'UNICEF a reçu le prix Nobel de la paix en 1965.",
"link": "http://www.unicef.org/",
"twitter": "http://www.twitter.com/UNICEF "
}
]
以下是如何在 chrome 上获得合适的选择器:
首先你右击并点击检查。
然后你点击复制选择器,并使用它。
当您复制选择器时,它会这样说,
#pan-desc > div.pan-desc-grey > div > div:nth-child(4) > div.element-value.gu.gu-last > a
可以直接使用,也可以提炼出来