阻止Scrapy将“-”转换为“—”来自URL

时间:2019-11-08 06:39:55

标签: python-3.x character-encoding scrapy middleware

我正在工作的一个网站经常在网址中使用,Scrapy在处理之前将其转换为—;我试图通过在默认的“下载中间件”中添加几行来将其修改回,它确实可以正常打印,但Scrapy再次将其转换回了,最终结果为404。

'DOWNLOADER_MIDDLEWARES' : {
    'something.middlewares.MyDownloaderMiddleware': 540
}

middlewares.py

from urllib.parse import unquote
from html import escape, unescape

class MyDownloaderMiddleware(object):
    def process_request(self, request, spider):
        new_url = unescape(unquote(request.url))
        print (new_url)
        request = request.replace(url=new_url)
        return None

我在中间件中尝试使用return request而不是return none,但是它似乎也不起作用。

解决方案:

我已经在蜘蛛代码中放置了两个.replace("—", "—"),尽管我的第一种方法是通过中间件来完成,但现在可以正常工作了。

0 个答案:

没有答案