Я использую приведенный ниже код для очистки содержимого XFN с веб-страницы http://ajaxian.com, но я получаю следующее ошибка:
Traceback (most recent call last): File "C:\Users\Somnath\workspace\us.chakra.social.web.microformat\src\microformats_xfn_scrape.py", line 40, in <module>
page = urllib2.urlopen(URL)
File "C:\Python27\lib\urllib2.py", line 126, in urlopen
return _opener.open(url, data, timeout)
File "C:\Python27\lib\urllib2.py", line 394, in open
response = self._open(req, data)
File "C:\Python27\lib\urllib2.py", line 417, in _open
'unknown_open', req)
File "C:\Python27\lib\urllib2.py", line 372, in _call_chain
result = func(*args)
File "C:\Python27\lib\urllib2.py", line 1232, in unknown_open
raise URLError('unknown url type: %s' % type)
urllib2.URLError: <urlopen error unknown url type: c>
Мой код выглядит следующим образом:
'''
Created on Jan 11, 2013
@author: Somnath
'''
# Scraping XFN content from a web page
# -*-coding: utf-8 -*-
import sys
import urllib2
import HTMLParser
from BeautifulSoup import BeautifulSoup
# Try http://ajaxian.com
URL = sys.argv[0]
XFN_TAGS = set([
'colleague',
'sweetheart',
'parent',
'co-resident',
'co-worker',
'muse',
'neighbor',
'sibling',
'kin',
'child',
'date',
'spouse',
'me',
'acquaintance',
'met',
'crush',
'contact',
'friend',
])
#try:
page = urllib2.urlopen(URL)
#except urllib2.URLError:
# print 'Failed to fetch ' + item
#try:
soup = BeautifulSoup(page)
#except HTMLParser.HTMLParseError:
# print 'Failed to parse ' + item
anchorTags = soup.findAll('a')
for a in anchorTags:
if a.has_key('rel'):
if len(set(a['rel'].split()) & XFN_TAGS) > 0:
tags = a['rel'].split()
print a.contents[0], a['href'], tags
Я запускаю PyDev под Eclipse и использую Run As -> Python Run и устанавливаю конфигурацию времени выполнения с аргументом «http://ajaxian.com/». Кто-нибудь может подсказать, где я ошибаюсь?
Еще одна вещь: я прокомментировал два блока try в своем коде, потому что он выдавал ошибку undefined variable : item. Если я хочу повторно включить блоки try-except, должен ли я дать пустое определение переменной, элемента вне блоков try? Как я могу избавиться от этой проблемы?
sys.argv[0]
=microformats_xfn_scrape.py
, а не фактический URL - person Amyth   schedule 11.01.2013