我試圖從一個網頁獲取數據,在那裏我跟蹤你的所有鏈接。網頁的建模很糟糕,頁面某些部分的鏈接在鏈接之前和之後都包含空格,所以scrapy隨之而來,您的Web服務器使用301創建循環重定向。Scrapy消毒url鏈接
我試圖過濾鏈接的URL,但它是不可能的,總是返回空格或符號+。代碼
def cleanurl(link_text):
print "original: ", link_text
print "filter: ", link_text.strip("\s+\t\r\n '\"")
return link_text.strip("\s+\t\r\n '\"")
#return " ".join(link_text.strip("\t\r\n '\""))
#return link_text.replace("\s", "").replace("\t","").replace("\r","").replace("\n","").replace("'","").replace("\"","")
rules = (
Rule (LinkExtractor(allow=(), deny=(), process_value= cleanurl)),
)
網頁代碼
<a href=
" ?on_sale=1
"
class="selectBox">ON SALE
</a>
輸出cleanurl
original: http://www.portshop.com/computers-networking-c_11257/ ?on_sale=1
filter: http://www.portshop.com/computers-networking-c_11257/ ?on_sale=1
部分我試圖用正則表達式和其他人,但我不能消毒的URL,在有些情況下,如果它在其他情況下不起作用,請將%20(空格)更改爲+。
謝謝!
你能用更多的URL重構你的問題嗎?可能給我們一些你正在處理的網址,當前的輸出和你期望的輸出。 –