我希望Scrapy不对我的请求进行URL编码.我看到scrapy.http.Request正在导入scrapy.utils.url,它导入包含变量_ALWAYS_SAFE_BYTES的w3lib.url.我只需要为_ALWAYS_SAFE_BYTES添加一组字符,但我不知道如何在我的蜘蛛类中做到这一点.
scrapy.http.Request相关行:
fp.update(canonicalize_url(request.url))
Run Code Online (Sandbox Code Playgroud)
canonicalize_url来自scrapy.utils.url,scrapy.utils.url中的相关行:
path = safe_url_string(_unquotepath(path)) or '/'
Run Code Online (Sandbox Code Playgroud)
safe_url_string()来自w3lib.url,w3lib.url中的相关行:
_ALWAYS_SAFE_BYTES = (b'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.-')
Run Code Online (Sandbox Code Playgroud)
在w3lib.url.safe_url_string()中:
_safe_chars = _ALWAYS_SAFE_BYTES + b'%' + _reserved + _unreserved_marks
return moves.urllib.parse.quote(s, _safe_chars)
Run Code Online (Sandbox Code Playgroud)