2013-12-02 3 views
3

, когда я попытался открыть эту ссылку (http://-travka-.tokobagus.com/)urllib2 не может открыть сайт

urllib2 дал мне эту ошибку

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib/python2.7/urllib2.py", line 127, in urlopen 
    return _opener.open(url, data, timeout) 
    File "/usr/lib/python2.7/urllib2.py", line 404, in open 
    response = self._open(req, data) 
    File "/usr/lib/python2.7/urllib2.py", line 422, in _open 
    '_open', req) 
    File "/usr/lib/python2.7/urllib2.py", line 382, in _call_chain 
    result = func(*args) 
    File "/usr/lib/python2.7/urllib2.py", line 1214, in http_open 
    return self.do_open(httplib.HTTPConnection, req) 
    File "/usr/lib/python2.7/urllib2.py", line 1184, in do_open 
    raise URLError(err) 
urllib2.URLError: <urlopen error [Errno 2] No such file or directory> 

Я думаю, что есть проблема с началом дефиса/тире. Как я могу открыть такой URL-адрес с urllib2?

Полный код

import urllib 
import urllib2 
from bs4 import BeautifulSoup 

url = 'http://-travka-.tokobagus.com/' 
#url = 'http://www.google.com' 
data = urllib2.urlopen(url) 
#soup = BeautifulSoup(data) 

Вы видите, я использовать google.com вместо и он работает нормально. Может быть, это ошибка, связанная с версией?

шахты являются:

  • Python - 2.7.4
  • Ubuntu - 13,04
+4

Это не BS, который дает вам ошибку, но «urllib2». Можете ли вы показать свой соответствующий код? – aIKid

+0

Добавлен код @aIKid. plz check – erickhushwaha

+2

Ваш код отлично подходит для меня. На какой платформе это? –

ответ

0

Добавлю этот запрос для получения информации в качестве ответа, так как он будет нечитаемым в комментарии. @ user3037901, можете ли вы добавить трассировку для следующих команд:

import httplib 
import urllib2 
req = urllib2.Request('http://-travka-.tokobagus.com/') 
h = httplib.HTTPConnection(req.get_host()) 
h.request(req.get_method(), req.get_selector(), req.data, {}) 
+0

У меня есть ошибка ** socket.error: [Errno 2] Нет такого файла или каталога ** – erickhushwaha

+0

@ user3037901 Я имел в виду полный след. по крайней мере три последние строки – alko

+0

'Файл '/usr/lib/python2.7/httplib.py", строка 791, в send' 'self.connect() ' ' Файл "/usr/lib/python2.7/httplib.py", строка 772, в connect' 'self.timeout, self.source_address)' 'Файл '/ usr/lib/python2. 7/socket.py ", строка 553, в create_connection' ' для res в getaddrinfo (host, port, 0, SOCK_STREAM): ' – erickhushwaha

0

Это работает для меня. Вот результат:

Python 2.7.5 (v2.7.5:ab05e7dd2788, May 13 2013, 13:18:45) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import urllib2 
>>> from bs4 import BeautifulSoup 
>>> stream = urllib2.urlopen("http://-travka-.tokobagus.com/") 
>>> response = stream.read() 
>>> soup = BeautifulSoup(response) 
>>> soup.prettify() 
u'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">\n<html xmlns="http://www.w3.org/1999/xhtml">\n <head>\n <meta content="text/html;charset=utf-8" http-equiv="Content-Type"/>\n <title>\n HERRY FIRDAUS NST | TOKOBAGUS.COM\n </title>\n <link href="http://-travka-.tokobagus.com" rel="canonical"/>\n <meta content="-travka- telah menjadi member Tokobagus sejak 01-05-2013. Lihat profil -travka- selengkapnya di Tokobagus." name="description"/>\n <meta content="index,follow" name="robots"/>\n <link href="http://as.tokobagus.biz/v6/global/images/favicon-13.ico" rel="shortcut icon" type="image/ico"/>\n <link href="http://as.tokobagus.biz/v6/global/css/global.min.1.0.18.css" media="screen" rel="stylesheet" type="text/css"/>\n <link href="http://as.tokobagus.biz/v6/skins/default/css/tbl.min.1.0.10.css" media="screen,print" rel="stylesheet" type="text/css"/>\n <link href="http://as.tokobagus.biz/v6/skins/d 
Смежные вопросы