div区域内容抓取_企业微信群机器人应用:使用python从网站抓取行业资讯并定时推送...

news/2024/5/18 13:06:32/文章来源:https://blog.csdn.net/weixin_30660643/article/details/112111220

19bf0b2ae11027782e5052e4b5765994.png

在企业经营过程中,及时了解行业相关信息(市场动态、竞品策略、行业数据等等)是非常必要的。通常情况下,商品部门、营销部门、市场部门可能都会安排专门的人员定期进行这些信息的搜集、整理,再进行内部的分享。
不过在大数据时代,利用技术手段爬取互联网中的海量数据,再进行筛选分析,提取有用的信息已经是非常常用的手段,但是爬虫技术毕竟还是有点门槛的,好在现在有python这样的胶水语言。利用python+企业微信机器人就可以很简单地实现从目标网站抓取行业资讯,并定时自动推送到内部企业微信群内进行共享,起到相关人员都能够及时了解相同的行业资讯的作用,一定程度上也有利于消除企业内部的信息孤岛。
具体的实现的流程如下:

00365b37e4c0f53f88a8d0658a4573d7.png

下面是我从化妆品资讯网站抓取资讯,并通过企业微信群机器人进行群推送的例子,仅供参考(案例虽然简单,但是也涉及到了http请求、html处理、webhook接口调用等相关知识,其实也算是个小小的爬虫了吧,哈哈)。
首先我们打开要抓取信息的页面,对于页面结构进行一个简单的分析,主要是为了后面对请求回来的信息好进行提取。

340685066e4c4962dddba160245fcbf1.png

如图所示,我要抓取的是资讯列表和链接地址,这个部分是包含在一个<div id="content">...</div>标签当中的,其中每一个列表项定都有class = "left_news"这个属性:<div class="left_news">...</div>,再下一层标签中,我们看到在每一个div中都有一个<h1>疫情下的韩国经济喜忧参半,免税业务大受打击,奢侈品销售出现反弹</h1>标签。
我要抓取的信息其实在这相标签中就已经全部都有了,那么这个就是我要抓取的页面内容的目标了。

376f744e334e5b27640b7f0fac683755.png

抓取信息的代码实现就用现在超流行的python(各种实用函数库都有,直接拿来用),由于是从网页抓取信息,并进行提取,这里用到requests,bs4(BeautifulSoup)两个库,最终代码如下:

# 从化妆品资讯网查询新闻列表
# 通过调用企业微信机器接口推送到群里
# 先引入功能库
import requests
import bs4# 自定义一个请求函数,参数是网址请求头请求参数,没有参数就空着,请求成功后返回页面的新闻列表
def catchnewslist(newsurl, headers, params):urllist = []titlelist = []resultlist = []response = requests.get(newsurl, headers=headers)if response.status_code == 200:print("请求成功!")response.encoding = 'utf-8'content = bs4.BeautifulSoup(response.text, 'html.parser')elements = content.select("#content h1 a")               # 这一句就是提取请求到的页面内容中要提取的新闻,根据不同的页面结构进行修改for element in elements:                                 # 把取到的新闻列表数据存到一个python列表中,方便后面使用urllist.append("http://www.cosmetic-news.net/" + element.get('href'))titlelist.append(element.string)resultlist = [[a, b] for a, b in zip(urllist, titlelist)]   # 把标题和地址组合成一个嵌套列表,并返回else:print(response.status_code)print("请求失败!")return resultlist# 定义一个向企业微个webhook地址post数据的函数,参数为地址和数据,这里post的是md5格式的字符串
def postmsg(url, post_data):post_data = '{"msgtype":"markdown","markdown":{"content":"%s"}}' % post_data# print(post_data)if url == '':print('url is blank')else:r = requests.post(url, data=post_data.encode())rstr = r.json()if r.status_code == 200 and 'error' not in rstr:result = 'success!'return resultelse:return 'Error'# 主函数
if __name__ == '__main__':newsurl = "http://www.cosmetic-news.net/newx-4.html"headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36"}# params = {"datatype":"jsonp", "page":"1", "callback":"flightHandler"}  参数视需求添加newslist = catchnewslist(newsurl, headers, '')# print(newslist)# 把请求回来的数据,按照要post到接口的md的格式再处理一下newslistdata = u"### 近期行业资讯: n"for i in newslist:# print("[%s](%s)" % (i[1], i[0]))newslistdata = newslistdata + "%s [%s](%s)" % (newslist.index(i) + 1, i[1], i[0]) + "n"print(newslistdata)url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=********-****-****-****-**********"   # 要post的群机器人的webhook地址# post_data = '[这是一个链接](http://work.weixin.qq.com/api/doc)' # 带链接的md字符串格式result = postmsg(url, newslistdata)  # 调用post,向webhook发送数据print(result)

补充说明一下,request请求头的写法,就是代码中:

headers={“******”}

这一句,大括号中的内容可以从浏览器=》开发者工具=》Network=》Headers=》Request Headers 中直接复制过来,如下图所示:

85fd42b1777de331dd596c52f4ba141b.png

以上代码运行环境为python3.8,运行结果如下:

5bf0059ef4287f226b588043a57393e1.png

最后,我们只需要把这段代码部署为任务计划,就可以定时抓取网页信息,并自动推送到群了,掌握了这个方法,还可以进行很多的扩展。
对于计划任务的设置,之前的文章中已经写过,可以参考下面这一篇:

赵旭臻:python提取数据库数据并实现企业微信机器人定时消息推送​zhuanlan.zhihu.com
c52ba6aba3a38d732d7c87e64a997dc4.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_712610.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SEO优化:WordPress发布文章主动推送到百度,加快收录保护原创

工作实在太忙&#xff0c;也没时间打理网站。最近公司额外交待了一些网站 SEO 方面的优化任务让我关注&#xff08;这就是啥都要会、啥都要做的苦逼运维的真实写照了...&#xff09;。 于是抽空看了下百度站长平台&#xff0c;至少看到了2个新消息&#xff1a; ①、百度已全面支…

网站提速-缓存技术(4)

缓存技术 memcached基本概念 Memcached是danga的一个项目&#xff0c;最早是为LiveJournal 服务的&#xff0c;最初为了加速 LiveJournal 访问速度而开发的&#xff0c;后来被很多大型的网站采用。 官方网站: www.danga.com 和 memcached.org Memcached是一个高性能的分布式的…

2007最优秀的CSS网站设计

很多人不知道的是&#xff0c;我同样是 Best Web Gallery 和 N.Design Studio“背后”的人. 2006年&#xff0c;我创建了Best Web Gallery,作为我发现的最好的 CSS and Flash 网站的收藏.我非常高兴这个项目让我有机会是我的设计思想与主流保持一致。在过去的一年里&#xff0c…

html提高搜索排名优化,网站搜索排名,为什么很难提升,该如何提高?

在日常SEO工作中&#xff0c;SEO人员经常遇到的一个问题就是&#xff1a;做了很多优化工作&#xff0c;自己的网站搜索排名&#xff0c;几乎是纹丝不动&#xff0c;很难提升&#xff0c;这对于SEO新人&#xff0c;是一项心态的考验&#xff0c;很多人开始焦急&#xff0c;不知道…

高性能网站建设之减少Http连接数

关于CSS背景图合并工具&#xff0c;请大家参看随笔&#xff1a;Css背景图合并工具功能增强&#xff08;V0.1&#xff09; 在对大访问量网站进行性能优化时&#xff0c;其中有一点是尽量减少http连接数&#xff0c;道理很明了&#xff0c;减少了单个PV的http连接数&#xff0c;…

ASP.NET网站还是ASP.NET Web应用程序?

当我在Visual Studio中启动新的ASP.NET项目时&#xff0c;可以创建一个ASP.NET Web应用程序&#xff0c;也可以创建一个ASP.NET网站。 ASP.NET Web应用程序和ASP.NET网站之间有什么区别&#xff1f; 我为什么要选择一个&#xff1f; 根据我使用的Visual Studio版本&#xff0…

php有ssm框架吗,SSM框架-企业门户网站-1-工程构建

刚入职一个星期&#xff0c;现在才有时间开始这个框架的博客&#xff0c;我自己接的项目&#xff0c;第一次拿商业项目开源&#xff0c;大神们可能看着会觉得这不怎么样吧&#xff0c;其实我上线的项目是PHP写的&#xff0c;我只是在这个项目的基础上&#xff0c;改为了SSM框架…

asp.net三层架构制作新闻管理_为什么使用PHP制作网站?

现在网站制作可以使用多种语言。为什么我们选择PHP进行网站制作&#xff1f; 北京东浩联创科技有限公司.是一家高端网站制作公司&#xff0c;在业界处于领先地位。本文东浩联创的小编告诉大家我们为什么使用PHP进行网站制作&#xff1f;它的优势在哪里&#xff1f;1&#xff0c…

linux php 网站计数器,PHP图形数字计数器的实现

php图形数字计数器&#xff0c;是现在网站中经常使用的方法&#xff0c;它的基本功能是针对单个用户而言&#xff0c;登录网站后计数器的值加一&#xff0c;用户刷新网页&#xff0c;计数器的值不会增加。这一点功能的实现是利用session来实现的&#xff0c;当用户登录时&#…

OSChina 初十二乱弹 ——网站都挂了,巴叔被安排出去度假

2019独角兽企业重金招聘Python工程师标准>>> Osc乱弹歌单&#xff08;2018&#xff09;请戳&#xff08;这里&#xff09; 【今日歌曲】 莱布妮子 &#xff1a;分享Scott Shields的单曲《Short Change Hero》 《Short Change Hero》- Scott Shields 手机党少年们想…

【大学生必备神器网站】免费论文下载、免费2T网盘、各类免费课程、在线高数引擎...收藏了4年的宝藏学习网站最全の整理推荐!

前言&#xff1a; 大学大学&#xff0c;就是“大不了自己学”。四年大学本科经历让我认识到一个道理&#xff1a;大部分情况下&#xff0c;人与人之间的差距就在于信息与资源上。互联网时代推崇“开源”与“自由”&#xff0c;但可惜的是&#xff0c;由于垃圾信息过剩&#xff…

复制加网站信息的javascript代码及对应的javascript阻止命令

复制加网站信息的javascript代码 代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns"http://www.w3.org/1999/xhtml"xml:lang"zh-cn…

这些小众又有趣的计算机自学网站,不再私藏了!

计算机的学习总少不了用“可视化”的方式去理解&#xff0c;今天推荐我收藏夹里相当不错的网站。 1. VisALgo - 数据结构和算法动态可视化 地址&#xff1a;https://visualgo.net/zh 网站提供不下20种经典的数据结构与算法可视化迭代过程&#xff0c;十分适合刚刚接触数据结构…

django搭建一个小型的服务器运维网站-查看和修改服务器配置与数据库的路由...

目录 项目介绍和源码&#xff1b; 拿来即用的bootstrap模板&#xff1b; 服务器SSH服务配置与python中paramiko的使用&#xff1b; 用户登陆与session; 最简单的实践之修改服务器时间&#xff1b;查看和修改服务器配置与数据库的路由&#xff1b; 基于websocket的实时日志实现&…

微软网站提供的8本英文原版书电子版

微软网站提供了8本英文原版书电子版。您可以到以下地址找到这8本书&#xff0c;进行免费的下载。 http://blogs.msdn.com/b/microsoft_press/archive/2011/03/03/ebooks-list-of-our-free-books.aspx?utm_contentem-orm-newsletters-msp-april-2011&utm_campaignNewslette…

15个使用 CSS3 制作的漂亮作品展示网站

今天分享的作品集网站有些特别&#xff0c;因为他们都是使用 CSS3 技术制作的。对于设计师来说&#xff0c;为了吸引注意力&#xff0c;作品集必须展示出你的能力&#xff0c;这有点像制作简历&#xff0c;要让人们看到你所擅长的&#xff0c;突出的部分&#xff0c;这是一次推…

或许是比力扣 leetcode 更好的选择?推荐两个编程算法宝藏网站

简介&#xff1a;虽然会有朋友吐槽 leetcode 题目过于简单&#xff0c;但也并不是人人都要去刷最难的题&#xff0c;比如把自己的练成信息学奥林匹克竞赛&#xff08;Olympiad in Informatics, OI&#xff09;的专业水平。 但是&#xff0c;信息学奥林匹克竞赛的学习是成体系的…

ROBOTS.TXT在SEO优化中的运用(ROBOTS.TXT SEO优化实战)

2019独角兽企业重金招聘Python工程师标准>>> 豆瓣网的robots.txt中有Crawl-delay、Visit-time、Request-rate&#xff0c;好多人搞不清楚这是什么含义&#xff0c;因为平时大家用的最多的是User-agent和Disallow。不会写的新手们可以参考下http://www.douban.com/ro…

【强烈推荐】如何解决JQuery类Post方式的跨域问题 - 空山雪林通用模块设计工作室 - ITeye技术网站...

【强烈推荐】如何解决JQuery类Post方式的跨域问题 - 空山雪林通用模块设计工作室 - ITeye技术网站【强烈推荐】如何解决JQuery类Post方式的跨域问题 博客分类&#xff1a;核心代码片段jQueryjsonFlashXML工作在很多应用场景&#xff0c;利用JQ的getJSON解决跨域问题是首选&…

22号大更新网站大面积降权的原因分析

22号端午节是个美好的日子&#xff0c;但对于众多站长来说&#xff0c;这一天并不快乐&#xff0c;因为百度算法发生改变导致很多网站降权了&#xff0c;特别是一些老站从排名很好&#xff0c;一夜回到解放前&#xff1b;很多站长认为是百度内部数据错误导致的&#xff0c;三天…