scrapy выдает ошибку внутреннего сервера 500 при попытке загрузки nepalstock.com

#python #scrapy

#python #scrapy

Вопрос:

когда я пытаюсь загрузить URL http://nepalstock.com/todaysprice в оболочку scrapy, он возвращает ошибку внутреннего сервера 500. Есть ли причина, по которой этот сайт, в частности, выдает такую ошибку?

Я уже пытался загрузить другие сайты, и все они нормально загружаются в оболочке. Я также пытался выполнить их с http и без http .

 scrapy shell 'http://nepalstock.com'

2019-04-07 12:09:41 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023
2019-04-07 12:09:41 [scrapy.core.engine] INFO: Spider opened
2019-04-07 12:09:41 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET http://nepalstock.com/robots.txt> (failed 1 times): 500 Internal Server Error
2019-04-07 12:09:41 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET http://nepalstock.com/robots.txt> (failed 2 times): 500 Internal Server Error
2019-04-07 12:09:42 [scrapy.downloadermiddlewares.retry] DEBUG: Gave up retrying <GET http://nepalstock.com/robots.txt> (failed 3 times): 500 Internal Server Error
2019-04-07 12:09:42 [scrapy.core.engine] DEBUG: Crawled (500) <GET http://nepalstock.com/robots.txt> (referer: None)
2019-04-07 12:09:42 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET http://nepalstock.com> (failed 1 times): 500 Internal Server Error
2019-04-07 12:09:42 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET http://nepalstock.com> (failed 2 times): 500 Internal Server Error
2019-04-07 12:09:42 [scrapy.downloadermiddlewares.retry] DEBUG: Gave up retrying <GET http://nepalstock.com> (failed 3 times): 500 Internal Server Error
2019-04-07 12:09:42 [scrapy.core.engine] DEBUG: Crawled (500) <GET http://nepalstock.com> (referer: None)
  

Ответ №1:

Есть ли причина, по которой этот сайт, в частности, выдает такую ошибку?

User-Agent Заголовок.

Многие сайты будут отвечать ошибками на запросы с помощью пользовательских агентов, обычно используемых ботами. Пользовательский агент по умолчанию для Scrapy является Scrapy/VERSION ( https://scrapy.org) , но вы можете задать для него другое значение.

 $ scrapy shell
...
>>> req = scrapy.Request( 
    'http://nepalstock.com/todaysprice', 
    headers={'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0'}, 
)                                                                                                                                                      
>>> fetch(req)                                                                                                                                         
2019-04-07 12:08:11 [scrapy.core.engine] DEBUG: Crawled (200) <GET http://nepalstock.com/todaysprice> (referer: None)
  

Комментарии:

1. Большое вам спасибо. Это сработало >>> запрос <ПОЛУЧИТЬ nepalstock.com/todaysprice > и я смог получить доступ к странице, используя объект ответа .