#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 > и я смог получить доступ к странице, используя объект ответа .