1. 首页
  2. 美食

发源地:C 爬虫实例-抓取大众点评评论

在消费者权益保护,电商也算一个消费者投诉的热门,今天用C#写了个抓取大众点评用户评论的小工具。首先确认抓取的链接访问类型和链接样式大众点评的评论页面链接还是比较标准的

在消费者权益保护,电商也算一个消费者投诉的热门,今天用C#写了个抓取大众点评用户评论的小工具。

发源地:C 爬虫实例-抓取大众点评评论

首先确认抓取的链接访问类型和链接样式

大众点评的评论页面链接还是比较标准的这里可以直接获取

http://www.dianping.com/shop/67863483/review_more?pageno=1

发源地:C 爬虫实例-抓取大众点评评论

通过商铺ID和页数能直接拼接出

postman访问试一下

发源地:C 爬虫实例-抓取大众点评评论

看到这里直接使用get下载就能获取到页面内容

C#get下载直接使用WebClient完成

using (System.Net.WebClient webClient = new System.Net.WebClient())

{

webClient.Headers.Add("User-Agent", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; GWX:QUALIFIED)");

aryBuffer = webClient.DownloadData(strurl_pl1);

}

//页面html

string strHtml_pl1 = System.Text.Encoding.GetEncoding("utf-8").GetString(aryBuffer);

页面下载完成后用正则表达式匹配用户的评论数据就可以完成了第一页的数据

//页面html

string strHtml_pl1 = System.Text.Encoding.GetEncoding("utf-8").GetString(aryBuffer);

//读取评论内容

string[] str_用户 = message("<p class=\"name\"><a (.*?)>(.*?)</a></p>", "$2", strHtml_pl1).Split('|');

string[] str_评分 = message("<span title=\"(.*?)\" class=\"item-rank-rst (.*?)\"></span>", "$1", strHtml_pl1).Split('|');

string[] str_回复内容 = message("<div class=\"J_brief-cont\">([\\s\\S]*?)</div>", "$1", strHtml_pl1).Split('|');

正则匹配这里我写了一个方法把所有结果存到一个字符串里面

public static string message(string ExpressionText, string Did, string content)

{

string input = "";

MatchCollection matchs = new Regex(ExpressionText).Matches(content);

int count = matchs.Count;

string ss = "";

string temp = "";

for (int i = 0; i < count&&i<20; i++)

{

temp = matchs[i].Result(Did);

if (ss.IndexOf(temp) > -1)

{

continue;

}

input += "|" + temp;

}

if (input.Length > 0)

{

input = input.Substring(1);

}

return input;

}

然后对于评论分页,先用正则匹配一下总页数

按照一页20条算一下需要多少页做一个循环

//全部点评</a><em class="col-exp">(127)</em>

MatchCollection matchs_page = new Regex("全部点评</a><em class=\"col-exp\">(.*?)</em>").Matches(strHtml_pl1);

int page = int.Parse(matchs_page[0].Result("$1").Replace(")", "").Replace("(", "")) / 20 + 1;

获取到页数之后用上面的链接做一下拼接和循环就能获取所有的评论内容了

工具只需要输入商铺的ID号就能获取所有评论

发源地:C 爬虫实例-抓取大众点评评论

然后把结果存到excle里面看一下

发源地:C 爬虫实例-抓取大众点评评论

发源地:C 爬虫实例-抓取大众点评评论

如果需要抓取一个小类的所有商铺只需要在外面增加一个循环就可以完成

发源地:C 爬虫实例-抓取大众点评评论

消费者可以根据评论判断商家的服务品质,商家通过评论反馈也能完善自己的产品和服务,最后,希望所有问题商家都被整改。

发源地:C 爬虫实例-抓取大众点评评论

发源地作为国内首个基于自研SaaS引擎的互联网大数据交易平台,通过众包UGC模式采集/接入数据源,进行清洗、过滤、脱敏处理后再交易,满足企业对数据分析、启动/运营数据及精准营销等方面的需求。

本文来自投稿,不代表本站立场,如若转载,请注明出处。