Я хочу запустить мой паук-скрап с почтовым запросом
import requests
data = {
'lang': 'en',
'limit': '10',
'offset': '0',
'path': '/content/swisscom/en/about/news',
'query': ''
}
s_url = 'https://www.swisscom.ch/etc/swisscom/servlets/public/gcr/news/search'
r = requests.post(url=s_url, data=data)
Пока я выполняю запрос напрямую из python, используя пакет запросов, как указано выше, все работает нормально.Однако, как только я включил его в свой паук, используя «Formrequest»
import json
import scrapy
from scrapy.http import FormRequest
class example(scrapy.Spider):
name = "example"
def start_requests(self):
data = {
'lang': 'en',
'limit': '10',
'offset': '0',
'path': '/content/swisscom/en/about/news',
'query': ''
}
s_url = 'https://www.swisscom.ch/etc/swisscom/servlets/public/gcr/news/search'
return[FormRequest(url=s_url, formdata=data, callback=self.parse )]
def parse(self, response):
test = json.loads(response.text)
for quote in test['results']:
yield {
'url': quote['url']
}
, я получаю следующую ошибку
2018-10-11 11:45:35 [scrapy.middleware] INFO: Enabled item pipelines:[]
2018-10-11 11:45:35 [scrapy.core.engine] INFO: Spider opened
2018-10-11 11:45:35 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2018-10-11 11:45:35 [scrapy.extensions.telnet] DEBUG: Telnet console listening on 127.0.0.1:6023
2018-10-11 11:45:36 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <POST https://www.swisscom.ch/etc/swisscom/servlets/public/gcr/news/search> (failed 1 times): [<twisted.python.failure.Failure twisted.internet.error.ConnectionLost: Connection to the other side was lost in a non-clean fashion: Connection lost.>]
2018-10-11 11:45:36 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <POST https://www.swisscom.ch/etc/swisscom/servlets/public/gcr/news/search> (failed 2 times): [<twisted.python.failure.Failure twisted.internet.error.ConnectionLost: Connection to the other side was lost in a non-clean fashion: Connection lost.>]
2018-10-11 11:45:36 [scrapy.downloadermiddlewares.retry] DEBUG: Gave up retrying <POST https://www.swisscom.ch/etc/swisscom/servlets/public/gcr/news/search> (failed 3 times): [<twisted.python.failure.Failure twisted.internet.error.ConnectionLost: Connection to the other side was lost in a non-clean fashion: Connection lost.>]
2018-10-11 11:45:36 [scrapy.core.scraper] ERROR: Error downloading <POST https://www.swisscom.ch/etc/swisscom/servlets/public/gcr/news/search>
Traceback (most recent call last): File "C:\ProgramData\Anaconda3\lib\site-packages\scrapy\core\downloader\middleware.py", line 43, in process_request defer.returnValue((yield download_func(request=request,spider=spider)))twisted.web._newclient.ResponseNeverReceived<twisted.python.failure.Failure twisted.internet.error.ConnectionLost: Connection to the other side was lost in a non-clean fashion: Connection lost.>]
2018-10-11 11:45:36 [scrapy.core.engine] INFO: Closing spider (finished)
Может кто-нибудь сказать мне, что означает сообщение об ошибке, ипочему мой запрос не работает в scrapy, в то время как все прекрасно с использованием 'reports.post'?
Большое спасибо заранее