怎么在python蜘蛛使用用pushplus对亚马逊到货动态推送进行监控?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
一、pushplus相关介绍
pushplus提供了免费的微信消息推送api,具体内容可以参考他的官网:pushplus(推送加)微信推送消息直达(hxtrip.com)
我们需要用到的东西有,登陆后的个人令牌(用于精准推送消息),如图:
调用该接口可使用如下代码,令牌为上面提到的你个人的令牌,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,标题=头)
二、整体思路
不出意外的话,你在编写代码时,亚马逊应该处于无货状态(有货直接就买了啊喂)! ! !我们在此时打开亚马逊页面,可以看到如下界面:
在新版边缘浏览器或者chrome下,按F12查看网页源码,选定中间目前不可用标识的区域(五颗星下面那个,最好覆盖范围大一点),能看到代码如下:
有一个比较简单的办法,判断亚马逊是否有补货。我们可以抓取这一部分的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对亚马逊到货动态推送进行监控