我是網站上的running this spider。它工作正常,但我遇到的一個問題是有許多帶有「#」作爲鏈接的hrefs。從Scrapy爬行中刪除「#」鏈接
如何跳過或放棄這些#鏈接?我正在輸出指向當前文件的鏈接,並使用lstrip
轉儲文件「」。我也試過i.replace
,但它仍然在文件中留下一條空行。
我是網站上的running this spider。它工作正常,但我遇到的一個問題是有許多帶有「#」作爲鏈接的hrefs。從Scrapy爬行中刪除「#」鏈接
如何跳過或放棄這些#鏈接?我正在輸出指向當前文件的鏈接,並使用lstrip
轉儲文件「」。我也試過i.replace
,但它仍然在文件中留下一條空行。
對於與您的選擇器匹配的所有內容,您是yield
ing。有條件yield
,所以轉換:
for i in selector.extract():
yield {"url": i.lstrip('#')}
成類似
for i in selector.extract():
url = i.lstrip('#')
if url:
yield {"url": url}
爲了跳過這些鏈接,您需要更改XPath表達式提取href屬性,只有當他們不含有「#」
selector = response.xpath('//*/a[not(contains(@href, "#"))]/@href')
完美的工作!我以前實際上已經嘗試過'not(contains())',但看起來我的語法錯了。謝謝! –
你能澄清你的意圖嗎?你想從字符串中刪除'#'嗎?忽略這一切? –
在這裏發佈代碼*的相關部分通常是一個好主意,而不是將它們放在某個第三方鏈接上。 –