[Python爬虫教学]Python网页爬虫结合LINE Notify打造自动化讯息通知服务

在这里插入图片描述

日常生活中,每个人都有关注的事情,像是演唱会门票的开卖、喜欢的商品降价或新电影上档等,而为了要及时自动取得这些资讯,Python网页爬虫就被广泛的使用,除了将爬取的信息透过

[Python实战应用]Python寄送Gmail电子邮件实战教学文章介绍的电子邮件进行通知外,另一个备受欢迎的接收通知管道就是LINE。

而LINE官方提供了LINE Notify的服务,只要完成和LINE网站的连动设定,就可以通过LINE Notify推播或传送消息至目标使用者的LINE中。

本文即以Udemy线上课程网站为例,利用Python网页爬虫关注想购买的线上课程,只要低于指定的价格,就透过LINE Notify服务传送消息给使用者。本文的重点包含:

登录LINE Notify服务

发行LINE Notify权杖(Token)

整合Python网页爬虫及LINE Notify服务

一、登录LINE Notify服务

首先,前往LINE Notify官网,来进行Python网页爬虫与LINE Notify的连动设定,如下图:

请点击输入图片描述(最多18字)

点选右上角的登入,输入LINE帐号及密码,如下图:

请点击输入图片描述(最多18字)

成功登入后,就可以看到「管理登录服务」页面,如下图:

请点击输入图片描述(最多18字)

接着,点击「登录服务」,输入LINE Notify服务的基本资料,由于本文的Python爬虫是跑在本机上,所以「服务网址」及「Callback URL」皆为http://127.0.0.1,如下范例:

请点击输入图片描述(最多18字)

填写完成后,点击「同意并前往下一步」,就可以看到刚刚所输入的基本资料,确认没问题点选「登录」按钮即可,如下范例:

请点击输入图片描述(最多18字)

这时后LINE Notify会发送认证邮件到登录服务时,所填写的电子邮件账号中,如下图:

请点击输入图片描述(最多18字)

而密码则需点击服务,才可以看到,如下图:

请点击输入图片描述(最多18字)

以上就完成了LINE Notify服务的基本资料登录了。

二、发行LINE Notify权限(Token)

有了的服务帐号及密码后,接下来,就可以向LINE Notify取得权限(token),各位可以把它想像是一张活动的门票,只要参加者有这张门票,就可以进入会场,并且主办单位会为参加者提供多样的服务。

同样的道理,只要程式码中带有LINE Notify所给的权限(token),LINE Notify就会为你提供传送消息的服务。

回到LINE Notify官网,点击右上角姓名旁的箭头,选择「个人页面」,如下图:

请点击输入图片描述(最多18字)

这时候就可以看到「发行权限」的按钮,如下图:

请点击输入图片描述(最多18字)

点击后进入后,首先填写「权限名称」,再选择要将消息传送给谁。这边的「权杖名称」,会出现在消息的开头,之后才接着自订的消息,有点像消息标题的概念,如下图:

请点击输入图片描述(最多18字)

点击发行,就可以看到LINE Notify服务的权限(token),如下图:

请点击输入图片描述(最多18字)

这边要特别注意,离开页面后,就不会再产生新的权杖(token)了,所以记得马上复制起来。

三、整合Python网页爬虫及LINE Notify服务

取得了LINE Notify的权杖(token)后,现在就能请它帮我们传讯息了。本文利用Python的BeautifulSoup套件,开发了一个Python网页爬虫,爬取某个课程的目前价格,如下范例:

from bs4 import BeautifulSoupbs4 import BeautifulSoup 
import requests
response = requests . get ( "https://www.udemy.com/course/codegym-python/" )
soup = BeautifulSoup ( response . text , "html.parser" )  
price = soup . find ( "span" , { "class" : "price-text__current" }). getText ()[ 7 :] #取得文字中的价格部分    

其中所使用的BeautifulSoup爬虫观念,当价格小于500元时,就透过LINE Notify传送降价的消息,如下范例:

from bs4 import BeautifulSoupbs4 import BeautifulSoup 
import requests
response = requests . get ( "https://www.udemy.com/course/codegym-python/" )
soup = BeautifulSoup ( response . text , "html.parser" )  
price = soup . find ( "span" , { "class" : "price-text__current" }). getText ()[ 7 :] #取得文字中的价格部分    
if int ( price ) < 500 : #将爬取的价格字串转型为整数     
    headers = { 
        "Authorization" : "Bearer " + "你的权杖(token)" ,   
        "Content-Type" : "application/x-www-form-urlencoded" 
    }
    params = { "message" : "Python基础课程和网路爬虫入门实战已降价至" + price + "元" }     
    r = requests . post ( "https://notify-api.line.me/api/notify" ,
                      headers = headers , params = params ) 
    print ( r . status_code ) #200  

执行结果

在这里插入图片描述

从范例中可以看到,要利用LINE Notify传送消息时,需在headers中加上刚刚所取得的权杖(token),接着自订所要传送的消息,如第16行,最后,呼叫LINE Notify的API,如果没有发生问题,则会得到200的状态码(status_code)。

四、小结
以上就是利用简单的实务范例来了解Python网页爬虫如何和LINE Notify整合,来推播或传送所爬取的信息,是不是非常的方便阿。现在就来找一个关注的目标,练习用Python网页爬虫取得信息的同时,结合LINE Notify来帮你传送消息吧。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mikes zhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值