前言:企业舆情安全重要吗?其实很重要,尤其面对负面新闻,主动处理和应对,可以掌握主动权,避免股价下跌等,那么如何做使用简单实用的企业舆情解决方案呢?
背景
好了,提取词写完了,直接说干货,首先说这件事的背景。公司是一家国内的企业,但是竞争对手全球都有,且最近忙着上市,负面信息呲呲往出冒,老板这个担心呐,想要一个企业舆情监控,掌握公司的一些新闻动态动态,重点还要有情感分析,而且重点说了,没有一点经费,好嘛,所有的商业舆情软件都不能考虑了。
基于这种0经费的舆情监控,作为一个工作10来年的安全员,自然是不能说自己不行,大不了我天天搜索引擎搜,然后抓新闻比对么。我绞尽脑汁的研究,还真的发现一套免费的方案。
方案
1.基于企业X通、X查查、爱X查等类型软件获取企业的各种经营预警信息,官方接口是需要付费的,不付费可以看(嘿嘿),甚至可以发邮件。这方法不就来了么。代码不能放(有协议),效果放一半大家看看
2.基于google alerts 全网搜常规企业新闻,类似于我们自己手动用搜索引擎搜索,只是google alerts把它自动化,首先要有一个google alerts账号,设置关键词,然后选择RSS发送或者邮件发送,关键词可以设置自己公司,也可以设置竞争对手公司,谷歌爬虫的强大,咋说呢,我拿我女神刘亦菲做测试,效果自己看。
RSS爬虫核心代码我就给大家放出来了,为啥敢放,因为RSS爬虫方案需要代理,而代理要钱,所以这个方案就放弃了。企业我使用的是邮件爬虫,不要钱,不是更好o(╥﹏╥)o,但是因为企业内部用,也就不能放出来。
# 核心代码,去掉了逻辑部分,数据库插入部分,和多组RSS部分,其实很简的,下面的可以执行单条RSS,自己按照自己需求改改就行了
import urllib.parse
try:with socket.create_connection((PROXY_HOST, PROXY_PORT), 3) as sock:sock.close()os.environ['HTTP_PROXY'] = "http://"+PROXY_HOST+":"+str(PROXY_PORT)os.environ['HTTPS_PROXY'] = "http://"+PROXY_HOST+":"+str(PROXY_PORT)
except socket.error as e:print(f"err:{e}")print("访问代理失败,退出采集程序")exit(1)
def extract_target_url(jump_link):# 解析查询参数parsed = urllib.parse.urlparse(jump_link)query_params = urllib.parse.parse_qs(parsed.query)# 查找'url'参数并解码encoded_target_url = query_params.get('url', [None])[0]if encoded_target_url:# 使用urllib.parse.unquote解码URL编码target_url = urllib.parse.unquote(encoded_target_url)return target_urlelse:return Nonedef Rssspider(rss):try:feed =feedparser.parse(rss)except:print(f"Error:{rss}地址错误或网络故障")for entry in feed.entries:tilte = entry.title.replace("<b>","").replace("</b>","").replace("...","")jump_link = entry.linksummary = entry.summary.replace("<b>","").replace("</b>","").replace("...","")#新闻时间data =entry.published[:10]target_url = extract_target_url(jump_link)if target_url:print("link:",target_url)else:print("link:","")print("title:",tilte)print("summary:",summary)print("data:",data)if __name__ == "__main__":Rssspider("https:/xxxx")
最后采集效果自己看,我不能说好,怕过度宣传,放个女神的采集结果给大家看看,这里面使用了个免费的情感分析库,效果很一般,想上情感分析的AI,但是接口要钱,自己内部搭建需要一个带卡的服务器,都没有,所以就使用了python的SnowNLP,效果极差,先对付用吧。后面有机会训练个小模型替代