получить текст с веб-сайта и отобразить его обратно - PullRequest
0 голосов
/ 20 октября 2011

В настоящее время есть игра, в которой есть разные группы, и вы можете играть за приз «золото» каждый час.Иногда есть золото, иногда нет.Он публикуется на фейсбуке каждый час «золото в группе 2» или «золото в группе 6», а в других случаях нет поста, поскольку золото за этот час не является призом.Я хочу написать небольшой скрипт, который будет проверять сайт ежечасно, захватывать результат (если есть золото или нет и какую группу) и отображать его мне.Я хотел написать это на python, поскольку я изучаю это.Будет ли это лучший язык для использования?И как бы я поступил так?Все, что я могу найти, - это информация по извлечению ссылок.Я не хочу извлекать ссылки, только текст.Спасибо за любую помощь.Я ценю это.

Ответы [ 2 ]

1 голос
/ 21 октября 2011

У меня есть что-то похожее на то, что у вас есть, но вы не учли, в чем заключается мой главный вопрос.Я посмотрел на htmlparser и bs, но я не уверен, как сделать что-то вроде if ($ posttext == gold) echo "gold in so and so" .. кажется, что bs много работает с тегами .. я полагаю, поскольку сообщения в Facebook могутиспользовать различные теги, как бы я просто выполнить поиск по тексту и вернуть «сообщение» ??

1 голос
/ 20 октября 2011

Проверьте urllib2 для получения html из URL и BeautifulSoup / HTMLParser / и т. Д. Для анализа html.Затем вы можете использовать что-то вроде этого в качестве отправной точки для скрипта:

import time
import urllib2
import BeautifulSoup
import HTMLParser

def getSource(url, postdata):
    source = ""
    req = urllib2.Request(url, postdata)
    try:
        sock = urllib2.urlopen(req)
    except urllib2.URLError, exc:
        # handle the error..
        pass
    else:
        source = sock.read()
    finally:
        try:
            sock.close()
        except:
            pass
    return source

def parseSource(source):
    pass
    # parse source with BeautifulSoup/HTMLParser, or  here...

def main():
    last_run = 0
    while True:
        t1 = time.time()
        # check if 1 hour has passed since last_run
        if t1 - last_run >= 3600:
            source = getSource("someurl.com", "user=me&blah=foo")
            last_run = time.time()
            parseSource(source)
        else:
            # sleep for 60 seconds and check time again.
            time.sleep(60)
     return 0

if __name__ == "__main__":
    sys.exit(main())

Вот хорошая статья о parsing-html-with-python

...