怎么在python蜘蛛使用用pushplus对亚马逊到货动态推送进行监控

  介绍

怎么在python蜘蛛使用用pushplus对亚马逊到货动态推送进行监控?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

一、pushplus相关介绍

pushplus提供了免费的微信消息推送api,具体内容可以参考他的官网:pushplus(推送加)微信推送消息直达(hxtrip.com)

我们需要用到的东西有,登陆后的个人令牌(用于精准推送消息),如图:

怎么在python蜘蛛使用用pushplus对亚马逊到货动态推送进行监控

调用该接口可使用如下代码,令牌为上面提到的你个人的令牌,titile对应推送标题,内容对应推送内容,此代码借鉴了官方演示

def  post_push(令牌,,标题,内容):=,url  & # 39; http://pushplus.hxtrip.com/send& # 39;   ,data =, {   “token":才能,令牌,   “title"才能:,标题,   “content"才能:内容   ,}=,,body  json.dumps(数据).encode(编码=& # 39;utf - 8 # 39;)   ,headers =,{& # 39;内容类型# 39;:,& # 39;application/json # 39;}   ,requests.post (url, data=https://www.yisu.com/zixun/body,标题=头)

二、整体思路

不出意外的话,你在编写代码时,亚马逊应该处于无货状态(有货直接就买了啊喂)! ! !我们在此时打开亚马逊页面,可以看到如下界面:

怎么在python蜘蛛使用用pushplus对亚马逊到货动态推送进行监控

在新版边缘浏览器或者chrome下,按F12查看网页源码,选定中间目前不可用标识的区域(五颗星下面那个,最好覆盖范围大一点),能看到代码如下:

怎么在python蜘蛛使用用pushplus对亚马逊到货动态推送进行监控

有一个比较简单的办法,判断亚马逊是否有补货。我们可以抓取这一部分的html源码,存进一个文件里(txt即可)。每过一定时间,重新抓取源码,如果这些源码变化了,那么基本上是网站更新了(补货了)。不过有个小瑕疵,这种补货也可能是亚马逊第三方(黄牛)补货之处;——

不过总归是有了一个判断上新的方法嘛,其实黄牛补货很少的,德亚上好像看不到黄牛(我个人没见过德亚上的第三方卖用于的),日亚上基本没有啥黄牛卖xbox

好了,接下来,我们看看如何实现相关功能

三,请求+ BeautifulSoup获取相关的html源码

我们使用请求+ BeautfifulSoup来抓取& lt; div id=& # 39; availability_feature_div>,& lt;/div>这个标签内部的所有html源码

headers =, {   ,才能“User-Agent":,“Mozilla/5.0, (Linux;, Android  9;, SM-A102U), AppleWebKit/537.36, (KHTML, like 壁虎),Chrome/79.0.3945.93  Mobile  Safari/537.36“,   ,,& # 39;内容类型# 39;:,& # 39;application/json # 39;   ,,}   时间=html  requests.get (url=self.url,头=标题)   时间=soup  BeautifulSoup (html.text, & # 39; lxml # 39;)   html.close ()   target =, str (soup.find (& # 39; div # 39;,, id=& # 39; availability_feature_div& # 39;))

注意如果不加标题的话,亚马逊会检测到爬虫,不会给你返回完整的html代码。第7行把请求给关闭掉是因为,我在监测时开了两个线程同时检测日亚和德亚,如果不加这一句的话,会被亚马逊认为是我在攻击网站,会拒绝我的网络访问

最终的目标是被转为str格式的相应的html源码,接下来只需要将其保存到文件,每隔一定时间再次爬虫比对就行了

,四,完整代码

import  json   import 请求   得到bs4  import  BeautifulSoup   import  filecmp   import 时间   import 线程         class  listenThread (threading.Thread):   ,def  __init__ (url,自我,还以为,originFile, newFile中,,内容):   threading.Thread.__init__才能(自我)   时间=self.url 才能;url   self.originFile 才能=originFile   self.newFile 才能=newFile中   时间=self.content 才能;内容      听,def (自我):   headers 才能=,{   ,才能“User-Agent":,“Mozilla/5.0, (Linux;, Android  9;, SM-A102U), AppleWebKit/537.36, (KHTML, like 壁虎),Chrome/79.0.3945.93  Mobile  Safari/537.36“,   ,,& # 39;内容类型# 39;:,& # 39;application/json # 39;   ,,}   html 才能=,requests.get (url=self.url,标题=标题)   soup 才能=,BeautifulSoup (html.text, & # 39; lxml # 39;)   html.close才能()   target 才能=,str (soup.find (& # 39; div # 39;,, id=& # 39; availability_feature_div& # 39;))   filetxt =,开放才能(self.originFile, & # 39; w # 39;,,编码=& # 39;utf - 8 # 39;)   filetxt.write才能(目标)   filetxt.close才能()   while 才能正确的:   ,,target =, str (soup.find (& # 39; div # 39;,, id=& # 39; availability_feature_div& # 39;))   ,,filetxt =,开放(self.newFile, & # 39; w # 39;,,编码=& # 39;utf - 8 # 39;)   ,,filetxt.write(目标)   ,,filetxt.close ()   ,,if  filecmp.cmp (self.originFile, self.newFile),==,错误的:   ,,,post_push(& # 39;这里输你自己的令牌,,,& # 39;xbox 更新# 39;,,self.content)   ,,,fileAvail =,开放(self.originFile, & # 39; w # 39;)   ,,,fileAvail.write(目标)   ,,,fileAvail.close ()   ,,time . sleep (30)   ,def 运行(自我):   self.listen才能()         def  post_push(令牌,标题,内容):=,url  & # 39; http://pushplus.hxtrip.com/send& # 39;   ,data =, {   “token":才能,令牌,   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

怎么在python蜘蛛使用用pushplus对亚马逊到货动态推送进行监控