无缺i 发表于 2022-6-15 13:44

使用Python实现小说有更新时自动推送到手机

本帖最后由 无缺i 于 2022-6-15 13:47 编辑

# 使用Python实现小说有更新时自动推送到手机

>第一次写Python写的不好麻烦多多指导
>
>本代码仅使用于代码中提到的网站、其它网站可以替换xpath路径适配
>
>本代码仅实现了pushDeer推送

## 代码

```python
import requests
from lxml import etree

# pushDeer推送的key
pushDeerKey = ""


def RequestUrl(url):
    # 请求小说的url
    response = requests.get(url)
    # 解析得到的html
    html = etree.HTML(response.text)
    # 使用xpath获取元素
    nodes = html.xpath("//section[@class='zxjz fk']/ul/li/a")
    # 打开文件(用于判断上次章节名称和当前章节名称是否一致)
    file = open("record.txt", "r+")
    # 读取文件的第一行
    file_str = file.readline()
    print("file_str:" + file_str)
    # 判断文件中的章节名和请求得到的章节名是否一致
    if file_str.__eq__(nodes.text):
      print("暂无更新...")
      return
    # 如果不一致则说明小说有更新了
    print("小说有新的更新...")
    file.seek(0, 0)
    file.truncate(0)
    file.writelines(nodes.text)
    href = nodes.get("href")
    href = "http:" + href
    # response = requests.get(href)
    # print(response.text)
    content = "[" + href + "](" + href + ")"
    pushDeer("您关注的小说有更新了!!!!", content)


# 推送消息到pushDeer
def pushDeer(title, content):
    requests.get(
      "https://api2.pushdeer.com/message/push?pushkey=" + pushDeerKey + "&text=" + title + "&desp=" + content + "&type=markdown")


if __name__ == '__main__':
    print("程序开始执行...")
    # 小说url
    RequestUrl("https://m.bagzw.com/4_4065/")

```

Raohz520 发表于 2022-6-15 15:46

什么小说能追这么狠!

henrylong1989 发表于 2022-6-15 16:40

你成功的把我吸引到pushdeer上面了:Dweeqw

Asra 发表于 2022-6-15 13:54

可以可以,再加上点反爬措施,控制下请求速度,设置定时或者进程守护,就可以当成定期服务来使用了

无缺i 发表于 2022-6-15 13:57

Asra 发表于 2022-6-15 13:54
可以可以,再加上点反爬措施,控制下请求速度,设置定时或者进程守护,就可以当成定期服务来使用了

我的想法就是当成定时任务来用,设置每隔一个小时运行一次,有更新的话,就推送到手机上

qwqeq2010 发表于 2022-6-15 14:20

支持一个!!!!!!!!!!

roberto2001 发表于 2022-6-15 14:43

这个不错,改改很实用

dft2010 发表于 2022-6-15 15:25

追书的人不是时时刷新列表么。。。其实这个功能实际用处不太大。。。不过也挺好。。楼主加油~

lhlking 发表于 2022-6-15 15:47

追小说也是一种动力,我记得有个爬高清写真的算法来着

心伤的天堂 发表于 2022-6-15 16:02

正好遇到。
LogicJake/WebMonitor
可以试试这个,简单够用。
页: [1] 2 3
查看完整版本: 使用Python实现小说有更新时自动推送到手机