Python从URL记录到文本文件中

时间:2013-11-10 23:33:01

标签: python url logging text handlers

我正在尝试从此网址中记录文字: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 -

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分: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

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

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