首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >urllib2.URLError:<urlopen error未知url类型: c>

urllib2.URLError:<urlopen error未知url类型: c>
EN

Stack Overflow用户
提问于 2013-01-11 23:45:20
回答 1查看 9.3K关注 0票数 2

我使用下面的代码从网页http://ajaxian.com中抓取XFN内容,但是我处理了下面的错误:

代码语言:javascript
复制
    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>

我的代码如下:

代码语言:javascript
复制
'''
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

我在Eclipse下运行PyDev,正在使用Run As --> Python Run,并使用参数"http://ajaxian.com/".有人能建议我哪里错了吗?

还有一件事:我在代码中注释了两个try块,因为它给出了一个错误:未定义的变量: item。如果我想重新包含try -include块,我是否应该在try块之外给出一个变量,item的空白定义?我怎样才能摆脱这个问题呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-11 23:54:58

正如您所建议的,sys.argv[0]打印脚本的路径,这是因为您的脚本调用方式如下所示

代码语言:javascript
复制
python microformats_xfn‌​_scrape.py <some_argument>

这里,sys.argv的索引0是脚本的名称,而不是参数。

您需要做的是使用<url>参数调用您的脚本,如下所示:

代码语言:javascript
复制
python microformats_xfn‌​_scrape.py http://www.ajaxian.com/

在您的脚本中,将sys.argv[0]更改为sys.argv[1],因为url参数索引为1。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14281630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档