2013-12-26 2 views
1

Когда я пытаюсь прочитать исходный код страницы, я получаю следующие выходные данные504: шлюз Timeout с urllib2

Traceback (most recent call last): 
  File "price.py", line 179, in <module> 
    l_soup = BeautifulSoup(urllib2.urlopen(l_link).read()) 
  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 410, in open 
    response = meth(req, response) 
  File "/usr/lib/python2.7/urllib2.py", line 523, in http_response 
    'http', request, response, code, msg, hdrs) 
  File "/usr/lib/python2.7/urllib2.py", line 448, in error 
    return self._call_chain(*args) 
  File "/usr/lib/python2.7/urllib2.py", line 382, in _call_chain 
    result = func(*args) 
  File "/usr/lib/python2.7/urllib2.py", line 531, in http_error_default 
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) 
urllib2.HTTPError: HTTP Error 504: Gateway Time-out 

Мой code.py (После удаления ненужной вещи):

isbn = str(9780593072493) 
l_link = "http://www.landmarkonthenet.com/books/search/"+isbn 
l_soup = BeautifulSoup(urllib2.urlopen(l_link).read()) 
l_temp = l_soup.select(".price-current") 

Как я могу это решить? Является ли перенаправление проблемы l_link причиной здесь? Заранее спасибо.

PS: Я уже искал проблему и не нашел ничего полезного.

+0

Какова программа? это клиентский сервер и php-сервер, подключенные к другой сети? Укажите, какова цель вашей программы. –

ответ

3

5xx status codes проблемы с сервером (по сравнению с кодами статуса 4xx, которые являются проблемами с клиентом). Это означает, что вы отправили серверу действительный запрос, но сервер не смог выполнить действительный ответ.

Ваш код в порядке, но сервер (или, в данном случае, шлюз, который использует сервер) имеет проблемы. Вам просто нужно терпеливо ждать, пока сервер решит свои проблемы, или обратитесь к администратору сервера и сообщите им, что их сервер плохо себя ведет.

+0

'u_link = "http://www.uread.com/search-books/" + isbn' ' u_soup = BeautifulSoup (urllib2.urlopen (u_link) .read()) ' ' u_temp = u_soup .find (id = "ctl00_phBody_ProductDetail_lblourPrice") ' То же самое происходит и с этим, хотя оба сервера прекрасно реагируют, когда запрос отправляется из браузера. :( – GingerNinja23

+0

@ GingerNinja23: ваш код отлично подходит для меня. Можете ли вы загрузить URL из командной строки, например, 'curl -L http: // www.landmarkonthenet.com/books/ search/9780593072493'? Вы пробовали используя Wireshark для отслеживания отправки пакетов, чтобы убедиться, что все так, как вы ожидаете? –

+0

Спасибо за помощь Адам. Я пытался код на koding.com, и по какой-то причине он не работал. мой ПК сейчас. И скручивание, и код работают отлично :) – GingerNinja23

Смежные вопросы