基于POI的地理空间分析
尝试复刻情绪值空间分布比较
-
数据收集:评论数量爬取(包括评分、评分细则(如口味、服务等)、评论数(全量、好中差评),评论标签,不含评论内容)。
-
爬虫尝试记录:
-
使用selenium:解决直接用requests无法展开ajax内容的问题
-
通过配置option抹除chrome webdriver活动特点:针对 window.navigator.webdriver == True
option.add_argument("--disable-blink-features") option.add_argument("--disable-blink-features=AutomationControlled")
爬了快500个以后失败了,用正常浏览器打开网页的反馈是User_Agent啥的,大概是IP被封了,本来打算尝试一下IP池,但是大概隔了10小时又可以上dp了就没在意。 不过一天之后,在webdriver里即使手动滑块也会被判定“请求异常”,猜测是webdriver的某些特征又被抓取到了,于是尝试第三种方法。
-
通过mitmdump“中间人”软件监控流量:针对yoda---.js对webdriver特征的识别,即把js中对webdriver特征串的检测内容替换为其它内容,逃过监测 (参考了两位大神的博客:https://www.cnblogs.com/lingcai/p/10616311.html, https://blog.csdn.net/u010451638/article/details/109850249)
(mitmproxy安装参考了:https://blog.csdn.net/qq_37437983/article/details/104319879)
把以上代码放在.py里,在所在路径运行mitmdump -s flow_editter.py 就可以开始快乐代理啦!
风险提示:在连续爬了100+以后会出现滑条验证,此时需要在第一次出现滑条的页面进行验证,不然如果无视滑条,继续get新url有很大风险被认为请求异常。
如果已经被认为异常,解决方法是重启webdriver,并且用新窗口打开任一其他网站,再回到dzdp进行滑条验证。不过不太清楚解决的原理是什么,难道是查看referer?
-
-
mitmdump原理学习:
-
爬虫代码:
-
参考资料:
- 爬虫相关定义、反爬机制及其破解
- selenium反爬机制
- 爬虫成长之路
- scrapy爬取大众点评 - scrapy没学过,有空可以看下
-
-
数据处理:核密度?
-
数据分析:相关性分析/聚集度分析/...
-
参考资料:
-
dzdp爬与反爬及数据分析 :用评论数和人均价格分析深圳烧烤市场,非常“咨询向数据分析”,对我很有借鉴意义
-
提出假设,统一分析指标:GMV = 评论数 * 客单价
-
罗列现象:品牌、区域、价格段分布等
-
关联目标分析,明确指标,以数据不同类型进行切片:
- 比如分析目标定位为争取市场,则GMV观察市场大小,GMV/SHOPcnt观察市场竞争程度(虽然我觉得用TGI可能更好一些?)
- 从分类数据来看:针对不同区域,不同价格段,哪些分段更适合市场进入
- 进行模型预测:用所有数据构建树预测GMV,并对feature_importance进行排序。这里面的结果运气非常好地有特征且好解释,如果特征太散乱的话,可以考虑先PCA一下
-
得出结论:比如进入市场,提高GMV的特征里优先级:优惠 > 规模 > 便捷等(之前在写报告的时候被客户艹过真是记忆犹新)
-
-
-
-
数据可视化:Python/Echatrs
借助已有数据+锻炼爬虫能力,进一步熟悉空间分析方法,尝试独立课题探索。