我已经尝试了很多不同的方法,这似乎是最接近的,但它只返回我所寻找的div项之一...
我已经让它返回多个,但无论何时它返回多个div-当我试图调用html上的.text()函数并将其输入list时,它返回空list (我已经删除了该代码。)
这是网页,如果你检查每一个项目框有一个卖家的名字。我已经尝试了大约5个小时,现在,我显然是一个初学者,特别是在JS,所以这是一个很好的挑战。我认为我缺乏一些基础知识,这是阻碍我。
https://poshmark.com/category/Men-Jackets_&_Coats?sort_by=like_count&all_size=true&my_size=false
感谢所有提供帮助的人。节日快乐。
const express = require("express");
const cheerio = require("cheerio");
const request = require("request-promise");
const pretty = require("pretty");
const { default: axios } = require("axios");
const app = express();
const port = process.env.port || 5000;
let states =[];
const url = "https://poshmark.com/category/Men-Jackets_&_Coats?sort_by=like_count&all_size=true&my_size=false";
const fetchData = async () => {
try {
let res = await axios.get(url);
let $ = await cheerio.load(res.data);
const items = $("#content > div > div > div > div:nth-child(4) > section > div.tiles_container.m--t--1");
const itemArea = $("#content > div > div > div > div:nth-child(4) > section > div.tiles_container.m--t--1 > div:nth-child(1) > div > div")
itemArea.each(function(i){
itemHref = itemArea.find("href").text()
areaText = itemArea.text();
console.log(areaText);
console.log(itemHref);
//console.log(`${i} : ${itemArea}\n\n\n`)
});
} catch (error) {
console.log(error)
return
}
};
fetchData();
我试着抓取href,然后抓取每个div底部带有用户名的类,每次都返回空白或未定义,我以为我终于得到了它。
1条答案
按热度按时间piok6c0g1#
这可能只是你的选择器的问题。但是,我发现这是工作:
这样,我们只得到文本中的用户名,而不是整个卡片文本。