2014-12-17 4 views
-1

치료 중에 리디렉션 된 URL을 변경할 수 있습니까?리디렉션 된 URL을 Scrapy에서 변경하십시오.

http://redirectedurl.com:8080/A

이 URL 때문에 포트 번호의 실패에 대한 리디렉션을 가지고

http://someurl.com/A

:

예를 들어, 나는 URL을 크롤링. 좋은 URL은 포트 번호없이 할 필요가, 그래서 내가 redirect_urls는 포트 않고 새 URL을 필요로 request.meta를 업데이트하려고

http://redirectedurl.com/A

로 변경하고 싶습니다. 워드 프로세서 MetaRefreshMiddleware가 redirect_urls,하지만 succes에

meta.update({'redirect_urls': ['http://redirectedurl.com/A '] }) 
r = Request(url=url, callback=callback, meta=meta) 

어떤 아이디어를 따르는 것을 말한다?

+0

이 질문은 [너무 광범위] (http://stackoverflow.com/help/on-topic)입니다. – jurgemaister

+0

내 질문을 업데이트합니다. 다시 생각해보십시오. – sergiuz

+0

우리에게 보여줄 수있는 코드가 있습니까? – jurgemaister

답변

1

깊은 곳에서 "두건 아래"문제를 해결할 필요가 없습니다. 당신은 요청이 리디렉션 된 경우 바로 확인하고 수정 된 URL로 새 요청을 만들 수 있습니다 물론

import re 
if 'redirect_urls' in response.meta: 
    new_url = re.sub(":\d+","", response.url) 
    yield Request(new_url) 

, 당신이 거기에 추가 검사를 추가를, 이것은 단지 최소한의 예입니다.

관련 문제