如何登录新浪微博是令许多数据新手(包括我)头疼的大问题。由于新浪的反爬虫策略,网上的教程往往撑不过几个月,查阅到的资料在半年前或是一年前——而它们早就无法使用了,在你想开始爬虫的时候被活生生卡在了第一步。
简单而言,我使用的方法是通过 Selenium 模拟浏览器的行为,直接在浏览器中输入用户名和密码并登录,然后直接从浏览器中获取 Cookies。虽然听起来十分简单(实际上也十分简单),但是确实是十分有效的方式。只要一个网站能通过浏览器登陆,我们就可以简单改造这个程序来登录并获得想要的资料。
什么是Selenium?如何使用?
Selenium 是一个项目的名称,都与浏览器和网页测试相关。主要的工具也就是今天我们所要使用的,是WebDriver,是一个浏览器自动化工具。它为很多不同的语言提供了库,包括 Python、Java、Ruby 等。本文中我选择使用 Python 来进行操作,当然你
youtube-dl 的官网:http://rg3.github.io/youtube-dl/index.html
youtube-dl 的 GitHub 页面:https://github.com/rg3/youtube-dl(喜欢的话给作者star哦~)
Youtube-dl 有什么用?
youtube-dl 是一个命令行工具,对我所知的大部分视频网站有不错的支持,你可以选择下载视频,或是将视频流直接导出到自己想使用的播放器中,也可以以JSON的形式获取可下载资源的URL。
使用方便、足够简洁,这是我在这里推荐的理由。
安装 Youtube-dl
Youtube-dl 通过 PyPi 分发,如果你的系统安装有 pip3 或 pip ,请直接使用:
sudo pip install --upgrade youtube_dl # 或pip3
如果你是 macOS 用户,也可以使用:
br
由于使用网页版微信,机器人往往不能够永远地在线。如果无法一直在线,也就失去了自动回复程序的意义。在此,我们使用两种方式来监控机器人程序:
自动定时发送消息
使用supervisor进行监控
自动发送消息
准备
如果需要定时发送消息,使用sleep方式来等待计时会阻塞线程,因此我们会使用threading来进行多线程的操作。把一个线程分配给自动给特定人发送微信消息。
定义自动发送消息的方法
在进行多线程操作之前,我们先定义一个自动发送消息的方法以备调用:
def send_online_notification(name):
my_friend = ensure_one(bot.search(name))
while True:
my_friend.send('Hello!') # 你想发送的消息
time.sleep(3600) # 一小
本篇的诞生来自于一朋友制作的表情机器人。当时觉得十分有趣,也希望加入到群聊机器人中,因此就向他讨要了源代码并制作了表情功能。在此我也再次感谢吴毅凡同学的协助!
准备工作
由于需要读取网页内容,本文中由于我个人偏好使用xpath来选择网页中元素,使用了lxml包,安装的话需要:
pip install lxml
如果你想要使用BeautifulSoup来处理网页,请安装:
pip install beautifulsoup4
使用斗图啦搜索表情
由于斗图啦是明文传输数据搜索的,我们可以简单地通过
res = requests.get('https://www.doutula.com/search', {'keyword': keyword})
来获取关键词keyword的搜索结果页面。
本例中我使用xpath来选择元素,其具体教程你可以查看这里。如果你想使用BeautifulSoup,
图灵机器人相关接口
图灵机器人是一个中文语境下的对话机器人,免费的机器人每天有5000次调用的,如果放在群聊中是完全够用的(如果只有@的消息才使用机器人回复的)。图灵机器人也包括一些简单的能力,比如讲笑话、故事大全、成语接龙、新闻资讯等,我们将介绍如何简单调用图灵机器人接口。
前期准备
前往注册图灵机器人,增加一个机器人,并记录机器人的APIKey。具体注册方法可以前往图灵API查看。(如果你觉得很麻烦, 也可以暂时使用itchat提供的几个key)
安装Requests: HTTP for Humans
# 从 pip 安装 ()
pip install requests
并在机器人中导入Requests包(写在程序最初):
import requests
调用接口
wxpy提供了图灵的接口,使用方法:
tuling = Tuling(api_key='Your API