-1

我正在尝试将来自此 URL 站点的文本:http ://radio.nolife-radio.com:8000/played.html 记录 到文本文件中。我决定尝试使用 Python Logging 模块。到目前为止,我什么也没得到,我一直在这里阅读一些内容:http: //docs.python.org/dev/library/logging.html不确定我应该使用 SocketHandler 还是 HTTPHandler。我对此很陌生,仍在浏览教程。使用 Urllib 或我不知道的东西可能有一个更简单的解决方案。URL 站点是一个广播电台,在每首曲目之后都会更新。我希望记录更新的信息。以下是目前的进展:

import logging, logging.handlers

logger = logging.getLogger('Radio Station')
logger.setLevel(logging.INFO)
fh = logging.FileHandler('thread.log')
fh.setLevel(logging.INFO)
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
fh.setFormatter(formatter)
logger.addHandler(fh)
host = 'localhost:8000'
url = 'www.radio.nolife-radio.com:8000/played.html'
http_handler = logging.handlers.HTTPHandler(host, url, method='GET')
logger.addHandler(http_handler)
logger.info("")

上面的代码暂时不起作用。如果我删除 HTTP 代码,结果如下:

2013-11-11 00:22:19,640 - Radio Station - INFO -

任何帮助,将不胜感激。

4

1 回答 1

1

好的,这里有一个urllib的快速示例,在 Windows 上应该没问题,你必须解决如何处理你得到的 HTML 的问题(我建议你使用Beautiful Soup模块来解析 HTML)。

from urllib import FancyURLopener

page_url = "http://radio.nolife-radio.com:8000/played.html"

class myUrlOpener( FancyURLopener ):
    version = "Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11"

opener = myUrlOpener()

page_contents = opener.open( page_url ).read()

print page_contents

这可能比您在 Internet 上找到的基本示例要复杂一些,因为该站点似乎不接受来自 Python urllib 用户代理的请求。在这里,通过调用FancyURLopener我们可以将用户代理设置为 Windows 上的 Firefox。

检查该网站(nolife-radio.com)关于从其页面中抓取内容的政策。

于 2013-11-11T00:06:37.157 回答