爬取电影天堂最近两天更新的电影推送到钉钉机器人

新的一年想着提升能力,那就做一个自己没有做过的事情,那就搞一下爬虫吧。自己给自己提了一个这样一个需求:爬取电影天堂最近两天更新的内容电影并把提取到的信息推送到钉钉机器人中。同时把这个代码放到青龙面板中就可以实现每天自动推送消息。

实现的效果:通过钉钉消息就可以看到每天更新的电影信息,如果感兴趣,就可以复制链接下载。

程序代码
#!/usr/bin/python
# -*- coding: UTF-8 -*-

import datetime
import requests
import re
from lxml import etree

 
#发送钉钉消息
#定义发送给钉钉机器人的消息
def Send_dingding_info(messagetitle,message):
    data = {
        "msgtype": "markdown",
        "markdown": {
            "title": messagetitle,
            "text":message,
        }
    }
    try:
        requests.post('https://oapi.dingtalk.com/robot/send?access_token=这里放置你的钉钉webhook', json=data)
    except Exception as e:
        print(e) #打印异常说明
    return


headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.188'
}

#需要爬取的电影天堂地址
url='https://www.dytt.to/index.html' 
req=requests.get(url,headers=headers)
#req.encoding='gb2312'


#获取电影信息&发送信息
def getmessage(pagelink,messagenum):
    page=requests.get(pagelink,headers=headers)
    pagehtml=etree.HTML(page.text)
    imagelink=pagehtml.xpath('//div[@id="Zoom"]//img/@src')
    magnetlink=pagehtml.xpath('//div[@id="Zoom"]//a/@href')#下载链接
       
    inf=re.findall(r"◎译  名.*?<br /><br />",page.text)
    addninf=inf[0].replace('<br />','\n> ###### ')
    takeerrorinf=addninf.replace('&nbsp;',' ')
    #print(addninf)
    #调用发送消息函数发送消息
    Send_dingding_info("# 最新电影推荐","## 今日更新第"+str(messagenum)+"部电影 \n>"+"###### "+takeerrorinf+"\n >"
                                            " ![screenshot](imagelink[0])\n>"
                                            +"[磁力链接](magnetlink[0]) \n>"+""+"电影推送 \n>")
    print("Send OK")


html=etree.HTML(req.text)

movieType=html.xpath('//div[@class="co_content8"]//td/a[1]/text()')
hrefs=html.xpath('//div[@class="co_content8"]//td/a[2]/@href')
Dates=html.xpath('//div[@class="co_content8"]//td/font/text()')
#print(movieType[0],hrefs[0],Dates[0])



Pagenum=0
messagenum=1
for page in hrefs:
    checkdate=(datetime.datetime.now()+datetime.timedelta(days=-1)).strftime("%Y-%m-%d")
    if movieType[Pagenum]=="最新电影下载" and Dates[Pagenum]>=checkdate:
        pagelink='https://www.dytt.to'+page
        getmessage(pagelink,messagenum)
        messagenum=messagenum+1
    Pagenum=Pagenum+1
    
钉钉webhook消息获得方法

具体可以参考下面的文章

webhook获得方法

总结

通过这一周的学习,学习了解Xpath的使用方法,还有简单的正则表达式。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值