我有一个文件夹,里面全是微软的.URL文件。我想把它们翻译成我论文的MLA引用列表。
这是一个很好的Python应用吗?如何获取页面标题?我使用的是装有Python 3.1.1的Windows XP。
发布于 2009-11-28 04:18:26
这是Python的一个奇妙的用途!.URL文件格式的语法如下:
[InternetShortcut]
URL=http://www.example.com/
OtherStuff=irrelevant要解析您的.URL文件,请从ConfigParser开始,它将读取此内容并创建一个InternetShortcut部分,您可以从中读取该URL。一旦有了URL列表,就可以使用urllib或urllib2加载URL,并使用愚蠢的正则表达式来获取页面标题(或者像Alex建议的那样使用BeautifulSoup )。
一旦你有了它,你就有了一个URL列表和页面titles...not,足以获得一个完整的MLA引用,但应该足以让你入门了,不是吗?
类似这样的代码(非常粗糙,在SO窗口中编码):
from glob import glob
from urllib2 import urlopen
from ConfigParser import ConfigParser
from re import search
# I use RE here, you might consider BeautifulSoup because RE can be stupid
TITLE = r"<title>([^<]+)</title>"
result = []
for file in glob("*.url"):
config = ConfigParser.ConfigParser()
config.read(file)
url = config.get("InternetShortcut", "URL")
# Get the title
page = urlopen(url).read()
try: title = search(TITLE, page).groups()[0]
except: title = "Couldn't find title"
result.append((url, title))
for url, title in result:
print "'%s' <%s>" % (title, url)发布于 2009-11-28 04:12:51
给定一个包含HTML页面的文件,您可以对其进行解析以提取其标题,BeautifulSoup是该作业推荐的第三方库。获取与Python3.1 here兼容的BeautifulSoup版本,安装它,然后:
soup对象,例如:从BeautifulSoup导入open('thefile.html','r').read() BeautifulSoup = BeautifulSoup(html)
title标记(如果有),并打印其字符串内容(如果有):title = soup.find(' title ')如果title为None: print('No title!')否则: print('Title:‘+ title.string)
https://stackoverflow.com/questions/1810405
复制相似问题