在twitter的用户页面或搜索页面上观看tweets。

twittcher的Python项目详细描述


twittcher(用于twitter watcher)是一个python模块,用于生成机器人程序,这些机器人程序将监视twitter用户页面或搜索页面,并对它们找到的tweets作出反应。

它很简单,很小(目前大约150行代码),不需要在twitter或dev.twitter.com上注册,因为它不依赖于twitter api(而是解析html)。

twittcher是一个开源软件,最初由Zulko编写,在mit许可下发布。该项目位于Github上,您可以在这里报告错误、提出改进建议等。

安装

如果您有pip,请通过键入终端安装twittcher:

(sudo) pip install twittcher

否则,下载源代码(在GithubPyPI),并在与setup.py文件相同的目录中,在终端中键入此代码:

(sudo) python setup.py install

twittcher需要python包beautifulsoup(也称为bs4),安装twittcher时会自动安装该包。

使用示例

目前还没有Twittcher的文档,但是下面的示例应该向您展示开始所需的一切。

2.通过Twitter控制一台远程机器!

每60秒,对于我的任何新的cmd: my_command形式的tweets,在终端中运行my_command。 使用简单的tweets,我可以控制任何运行此脚本的远程计算机。

import subprocess
from twittcher import UserWatcher

def my_action(tweet):
    """ Execute the tweet's command, if any. """
    if tweet.text.startswith("cmd: "):
        subprocess.Popen( tweet.text[5:], shell=True )

# Watch my account and react to my tweets
bot = UserWatcher("Zulko___", action=my_action)
bot.watch_every(60)

例如,tweetcmd: firefox将在计算机上打开firefox,tweetcmd: echo "Hello"将让计算机在终端中打印hello。

三。查看搜索结果并发送提醒邮件

每隔20秒,向我发送twitter搜索结果中所有关于巧克力牛奶的新tweets。

from twittcher import TweetSender, SearchWatcher
sender = TweetSender(smtp="smtp.gmail.com", port=587,
                     login="tintin.zulko@gmail.com",
                     password="fibo112358", # be nice, don't try.
                     to_addrs="tintin.zulko@gmail.com", # where to send
                     sender_id = "chocolate milk")
bot = SearchWatcher("chocolate milk", action=sender.send)
bot.watch_every(20)

四。多机器人监视

如果要同时运行多个机器人,请确保在不同机器人的请求之间留出几秒钟的时间。 这里是你如何打印约翰d库克,马萨贝比,和奥拉斯的新推文。每分钟监视一个,两个机器人的请求之间间隔20秒:

import time
import itertools
from twittcher import UserWatcher

bots = [ UserWatcher(user) for user in
         ["JohnDCook", "mathbabedotorg",  "Maitre_Eolas"]]

for bot in itertools.cycle(bots):
    bot.watch()
    time.sleep(20)

5个。保存tweets

机器人可以将已经看到的tweets保存到一个文件中,以便在以后的会话中记住不再处理这些tweets,以防它们仍然出现在关注的页面上。

from twittcher import SearchWatcher
bot = SearchWatcher("chocolate milk", database="choco.db")
bot.watch_every(20)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java按对象值分组,计数,然后按最大对象属性设置组键   在Android上处理Firebase DatabaseReference updateChildren OnCompletionListener的java正确方法   java Jetty与WebSocket的区别是什么。sendMessage(字符串数据)和void sendMessage(字节帧,字符串数据)?   与java中的XStream具有相同功能的C#序列化器/反序列化器   java查看是否从父类单击了JButton   java“抓取时超时”URLFetch GAE/J   java Tomcat自定义上下文。xml文件从未被考虑在内   文件java小程序删除(“java.io.tmpdir”)+“myfolder”内容关闭小程序或停止()   java LTV支持PDF格式的签名   java ScrollView不会填充   java如何使用socket创建与平台无关的互斥体?   java增强for(或“for each”)循环迭代到刚删除的元素会抛出错误   java是否可以使用iBATIS中止长时间运行的查询?   java我需要在web应用程序中放置一个文件,以便从servlet读取它吗   java BeanCreationException休眠5。LocalSessionFactoryBean Bean属性“EL”不可写或具有无效的setter方法