Python如何监控别人的网站

场景

可能是你用不到,但是我遇到了这样一个问题,就是我想详细了解我的竞争对手的网站(电商类)销售情况和新品上架情况,但是我总不至于像盯盘一样,在电脑或者手机上一直看着这个站吧!

于是我想到用一个脚本来检测,脚本的功能是如果发现对手出售了商品,就发送我售出商品的名称,价格;如果是新上线了商品,就要邮件告诉我新品的名称,价格,这对于我分析对手的销量和趋势,然后在我的店铺中择优上货是有一定帮助作用的。

另外,这个脚本作用不仅仅如此,你也可以修改一下,包括但不限于监控自己的抖音粉丝上升趋势、其他事件新闻进展、甚至是当前热点等等。

现成的产品

当然,我前面的想法在现实中每个公司、店铺都用得到,而且有人专门开发程序为此而服务,比方说比较好的网页监控工具:Visualping、Distill Web Monitor、Wachete等,他们都是做这个的也都很专业,但是要想深度使用,就要收费了;

国内也有类似的产品,我尝试过。不过也有限制,每天1个网页变化只给10封邮件,申请再多也要收费!

所以吧,自己写来自己用吧!

代码

import requests
from bs4 import BeautifulSoup
import smtplib
from email.mime.text import MIMEText# 网站 URL
url = "https://"# 发送邮件的参数
sender = '你的发件人邮箱'
receiver = '你的收件人邮箱'
smtp_server = 'smtp.xxx.com' # 发件人邮箱的 SMTP 服务器地址
smtp_port = 465 # 发件人邮箱的 SMTP 端口
username = '你的发件人邮箱'
password = '你的发件人邮箱密码'def send_email(subject, body):# 创建 MIMEText 邮件msg = MIMEText(body)msg['Subject'] = subjectmsg['From'] = sendermsg['To'] = receiver# 发送邮件with smtplib.SMTP_SSL(smtp_server, smtp_port) as server:server.login(username, password)server.sendmail(sender, receiver, msg.as_string())def get_product_info(product_url):# 获取商品信息response = requests.get(product_url)soup = BeautifulSoup(response.text, 'html.parser')title = soup.find('h1', class_='h3').textprice = soup.find('span', class_='h2').textstock = soup.find('span', class_='js-product-stock').textreturn (title, price, stock)def check_product_sold_out(product_url):# 检查商品是否已售出response = requests.get(product_url)soup = BeautifulSoup(response.text, 'html.parser')if soup.find('div', class_='product-sold-out'):return Trueelse:return False# 定期检查商品
while True:# 获取网页内容response = requests.get(url)soup = BeautifulSoup(response.text, 'html.parser')# 查找商品列表product_list = soup.find('div', class_='js-product-list')# 检查每个商品是否售出for product in product_list.find_all('a', class_='product-card'):product_url = product['href']product_title = product.find('h2').textif check_product_sold_out(product_url):# 商品已售出,发送邮件通知subject = f'商品已售出:{product_title}'body = f'商品名称:{product_title}\n'send_email(subject, body)else:# 商品未售出,检查是否为新商品try:# 尝试获取商品信息,如果获取失败则说明是新商品product_title, product_price, product_stock = get_product_info(product_url)except:# 新商品,发送邮件通知subject = f'新商品上架:{product_title}'body = f'商品名称:{product_title}\n库存:{product_stock}\n价格:{product_price}\n'send_email(subject, body)# 等待一段时间后再次检查time.sleep(300)

解释:这个就是网店的监控程序,新品上架,商品售出会像间谍一样及时通知你!

再赠送一个:

import requests
import hashlib
import time
import smtplib
from email.mime.text import MIMETexturl = 'https://'def get_hash(url):response = requests.get(url)return hashlib.sha256(response.content).hexdigest()def send_email(content):sender = ''receiver = ''password = ''smtp_server = ''smtp_port = 465message = MIMEText(content)message['From'] = sendermessage['To'] = receivermessage['Subject'] = 'Website Change Alert'server = smtplib.SMTP_SSL(smtp_server, smtp_port)server.login(sender, password)server.sendmail(sender, receiver, message.as_string())server.quit()current_hash = get_hash(url)
while True:new_hash = get_hash(url)if new_hash != current_hash:send_email('Website content has changed.')current_hash = new_hashelse:time.sleep(30)

解释:这个代码很简单,比较的是网页哈希,只要有变化就会邮件通知,可用于任何场景!

如何使用

上面的代码是python的,修改后可以直接使用。后台运行的方法:

nohup python3 jiankong.py > output.log 2>&1 &

Python如何监控别人的网站相关推荐

  1. 用python监控女朋友的网站看你女朋友每天都在看一些什么东西

    需求 (1)你要有个女朋友(没有也行问题不大) (2)获取你女朋友chrome前一天浏览记录中的所有网站路径和访问时间,把它保存到一个txt中 (3)将这个txt文件发送给指定的邮箱(你的邮箱,或者我 ...

  2. python脚本监控网站状态 - 赵海华_运维之路 - 51CTO技术博客

    python脚本监控网站状态 - 赵海华_运维之路 - 51CTO技术博客 python脚本监控网站状态 2013-01-09 09:21:02 标签:监控 python 原创作品,允许转载,转载时请 ...

  3. Python爬虫监控(邮件和钉钉)

    文章目录 一.监控的意义 二.Python邮件监控(SMTP) 1. SMTP简介 2. 邮件监控五个步骤 3. 邮件监控发送(代码) 二.钉钉监控 一.监控的意义 爬虫脚本是基于网站的结构去写的,但 ...

  4. 智能电脑监控器,完美解决想监控别人在自己电脑上的一切操作。

    智能电脑监控器,完美解决想监控别人在自己电脑上的一切操作. 有很多人想知道他人在这台电脑上浏览了哪些网站,玩什么游戏,与网友聊了什么. 更通俗一点的,就是想监控配偶(老公/老婆/女友/男友)的QQ聊天 ...

  5. 真实世界的Python仪器监控:数据采集与控制系统自动化(

    真实世界的Python仪器监控:数据采集与控制系统自动化(硬件DIY  不可多得的实战指南) (美)休斯(Hughes,J.M.)著 OBP Group 译 ISBN 978-7-121-18659- ...

  6. 写了个Python脚本监控nginx进程

    写了个Python脚本监控nginx进程 « Xiaoxia[PG] 写了个Python脚本监控nginx进程 接上一文用iptables让SSH服务对陌生人说不.还是有点担心这个学期内,nginx可 ...

  7. Python常用6个技术网站汇总分享!

    Python是一门面向对象的编程语言,它具有丰富和强大的库,能够把用其他语言编写的各种模块轻松地联结在一起,因此也常被称为"胶水语言".Python技术会随着互联网的不断发展一直迭 ...

  8. Python之web开发(六):python使用django框架搭建网站之登陆页搭建不同页面之间跳转

    [写在前面]:有关urls及path函数的应用详见:https://blog.csdn.net/weixin_44322778/article/details/102598346 [官方说明]: 规划 ...

  9. python 服务监控_python实现监控某个服务 服务崩溃即发送邮件报告

    python实现监控某个服务 服务崩溃即发送邮件报告 发布时间:2020-09-21 02:28:12 来源:脚本之家 阅读:69 作者:黑面狐 前言:最近我们的升级服务器有点不太稳定,经常崩溃掉.然 ...

最新文章

  1. 在dw中如何调试html代码,如何在 Dreamweaver 中优化和调试代码 - Dreamweaver 用户指南...
  2. Mac 下anaconda安装mysqldb的方法
  3. Leetcode 94.二叉树的中序遍历 (每日一题 20210712)
  4. 如何在虚拟机上安装wsus服务器,如何在Hyper-V虚拟机上安装WSUS服务器技巧
  5. 高校学霸情侣 双双保研中科院,3年获近9万奖学金,120余项个人荣誉……
  6. VS2010 C++ 插件 VissualAssistX 安装
  7. CAS 5.1.x 的搭建和使用(四)—— 配置使用HTTP协议访问的服务端
  8. Nginx自学手册(六)Nginx+Tomcat实现动静分离
  9. 使用IIS实现反向代理
  10. Ubuntu系统镜像下载网站
  11. win10没有indexed文件_不止用来切程序,Win10任务栏还能这么玩
  12. Web前端-HTML
  13. 阿里云ECS服务器使用限制及不允许做的事情
  14. 计算股票收盘价的月日均值 matplotlib绘图
  15. 学习OpenCV双目测距原理及常见问题解答
  16. EasyRules动态规则实现
  17. 大话卷积神经网络CNN(干货满满)
  18. 谷歌网盘资源搜索 无条件下载
  19. GB8624-2012 与GB8624-2006 有什么区别?
  20. Py之scikit-sos:scikit-sos的简介、安装、使用方法之详细攻略

热门文章

  1. 重点计算机应用基础2010,计算机应用基础WIN7+OFFICE2010_课件重点.ppt
  2. java 获取httpsession_java使用websocket,并且获取HttpSession,源码分析
  3. AD20(Altium Designer20)实用技巧系列教程
  4. 我和关注我的前1000个粉丝“合影”啦,收集前1000个粉丝进行了一系列数据分析,收获满满
  5. 大数据技术原理与应用——NoSQL数据库
  6. Python 回调函数的实现
  7. 追赶法求解方程组备忘
  8. Win11的两个实用技巧系列之无法联网怎么办、耳机没声音的多种解决办法
  9. 数据分析-Pandas基础
  10. kindeditor 上传图片失败问题总结