c#抓取亚马逊商品信息②review详情

string asin = "";
string url = "https://www.amazon.com/product-reviews/" + asin + "/ref=cm_cr_arp_d_viewopt_srt?sortBy=recent&pageNumber=1";
string strHTML = "";
WebClient myWebClient = new WebClient();
myWebClient = new WebClient();
Stream myStream = myWebClient.OpenRead(url);
StreamReader sr = new StreamReader(myStream);
strHTML = sr.ReadToEnd();
myStream.Close();

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(strHTML);

var review_NodeList = doc.DocumentNode.SelectNodes("//div[@id='cm_cr-review_list']/div[@data-hook='review']");

List<Tuple<string, double, string, string, string, string>> details = new List<Tuple<string, double, string, string, string, string>>();

foreach (var reviewNode in review_NodeList)
{
    string username = reviewNode.SelectSingleNode(".//span[@class='a-profile-name']").InnerText;
    string starsStr = reviewNode.SelectSingleNode(".//span[@class='a-icon-alt']").InnerText;
    double stars = double.Parse(starsStr.Replace("out of 5 stars", "").Trim());

    string reviewDate = reviewNode.SelectSingleNode(".//span[@data-hook='review-date']").InnerText;

    string AttributeStr = reviewNode.SelectSingleNode(".//a[@data-hook='format-strip']").InnerText;

    string reviewContent = reviewNode.SelectSingleNode(".//span[@data-hook='review-body']").InnerText;

    string imageUrl = "";
    var reviewImageNodeList = reviewNode.SelectNodes(".//img[@alt='review image']");
    if (reviewImageNodeList != null && reviewImageNodeList.Count > 0)
    {
        foreach (var imageNode in reviewImageNodeList)
        {
            imageUrl += imageNode.GetAttributeValue("src", "") + ";";
        }
    }

    details.Add(new Tuple<string, double, string, string, string, string>(username, stars, reviewDate, AttributeStr, reviewContent, imageUrl));
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值