Подготовка рабочего места
Твиттер API
- URL запроса;
- формат ответа, который вернет сервер;
- метод запроса (POST или GET);
- параметры и их описание;
- пример запроса.
Python и cURL
import pycurl
data = StringIO.StringIO()
curl = pycurl.Curl()
#устанавливаем параметры запроса
curl.setopt(pycurl.URL, 'relaxat.ru')
curl.setopt(pycurl.WRITEFUNCTION, data.write)
#исполним запрос
curl.perform()
#освободим память
curl.close()
#получим результат и выведем на экран
print data.getvalue()
curl.setopt(pycurl.PROXYTYPE,
pycurl.PROXYTYPE_SOCKS5)
curl.setopt(pycurl.HTTPPROXYTUNNEL,1)
curl.setopt(pycurl.PROXY, '192.168.1.1:2222')
Постинг сообщений
import pycurl, StringIO
data = StringIO.StringIO()
curl = pycurl.Curl()
curl.setopt(pycurl.URL,
'http://twitter.com/statuses/update.xml')
curl.setopt(pycurl.WRITEFUNCTION, data.write)
curl.setopt(pycurl.USERPWD,'spiritua:password')
curl.setopt(pycurl.POSTFIELDS,'status=TEXT')
curl.setopt(pycurl.POST,1)
curl.perform()
curl.close()
print data.getvalue()
import sys
sender.py "I love XAKEP"
Имитация активности
http://twitter.com/statuses/user_timeline/spiritua.xml
. Здесь вместо ‘spiritua’ мы вставим имя выбранного донора сообщений. По расширению xml становится понятно, в каком формате придет результат . Для дальнейшего парсинга xml можно использовать библиотеки, но в нашем случае от этого усложнения помогут избавиться регулярные выражения. Если мы посмотрим на структуру xml-ответа, то увидим, что сообщения всегда находятся между тегами <text>. Исходя из этого, заюзаем следующую регулярку:
<text>(.*)</text>.
import re
rez = re.findall("<text>(.*)</text>",data)
- берем у донора самое последнее сообщение;
- проверяем, есть ли это сообщение среди наших, и, если нет — публикуем.
Твиттерянин, где ты?
- Поиск по имени.
- Поиск по списку друзей.
- Случайный выбор.
http://twitter.com/statuses/public_timeline.xml
, мы получим 20 последних сообщений вместе с данными об авторах. Кстати, третий вариант удобен еще и тем, что, используя его, мы получим лишь активных пользователей. Имя в ответе от твиттера будет находиться между тегами <screen_name>, поэтому для последующего парсинга результата подойдет вот эта регулярка:
<screen_name>(.*)</screen_name>.
http://twitter.com/friendships/create/spirit.xml
, где вместо spirit придется вставить имя нужного аккаунта.
curl.setopt(pycurl.URL,
'http://twitter.com/friendships/create/'+
name+'.xml')
curl.setopt(pycurl.USERPWD,'spiritua:passwd')
curl.setopt(pycurl.POST,1)
«Редиска» — плохой человек
http://twitter.com/statuses/friends.xml
#настроим cURL на получение списка друзей
curl.setopt(pycurl.URL,
'http://twitter.com/statuses/friends.xml')
curl.setopt(pycurl.USERPWD,'spiritua:passwd')
curl.setopt(pycurl.WRITEFUNCTION, data.write)
#запустим запрос
curl.perform()
#сохраним результаты в переменную friends
friends = data.getvalue()
#очистим буфер для следующего запроса
data.truncate(0)
#получим список людей, которые читают нас
curl.setopt(pycurl.URL,
'http://twitter.com/statuses/followers.xml')
curl.perform()
followers = data.getvalue()
friends = re.findall("<screen_name>(.*)</screen_name>",friends)
followers = re.findall("<screen_name>(.*)</screen_name>",followers)
http://twitter.com/friendships/destroy/spirit.xml
. В результате должен получиться примерно следующий код (полный исходник рекомендуется курить с нашего диска):
#подключим библиотеку time для команды sleep
import time
curl.setopt(pycurl.POST, 1)
#цикл по всему списку друзей
for friend in friends:
#проверка - читает ли друг нас
if friend not in followers:
#если не читает - то для нас он не друг
curl.setopt(pycurl.URL,
'http://twitter.com/friendships/destroy/'+
friend+'.xml')
curl.perform()
#ждем 2 секунды
time.sleep(2)
скачать видео с мейл ру
микрафон прослушать свой голос
программа для проверки жёсткого диска
как освободить место на жёском диске виндомс хр
Twitter: web_seo_site
(1 comments) 12 июля 2020 at 22:47 #
Twitter: h4vectr
(2 comments) 28 июня 2020 at 9:15 #
- Prom Dresses
Twitter: Artoha
(3 comments) 4 января 2020 at 12:15 #
Twitter: flaboratory_ru
(1 comments) 27 декабря 2019 at 14:45 #