放弃"#"来自Scrapy的链接爬行

时间:2017-02-20 22:48:25

标签: python scrapy scrapy-spider scrapy-pipeline

我在网站上running this spider。它工作正常,但我遇到的一个问题是有很多href与#34;#"作为链接。

如何完全跳过或删除这些#链接?我正在输出当前文件的链接,并使用lstrip转储""到文件。我还尝试了i.replace,但它仍然在文件中删除了空白行。

2 个答案:

答案 0 :(得分:1)

对于与您的选择器匹配的所有内容,您需要yield。有条件地yield,所以转换:

for i in selector.extract():
    yield {"url": i.lstrip('#')}

类似

for i in selector.extract():
    url = i.lstrip('#')
    if url:
        yield {"url": url}

答案 1 :(得分:0)

为了跳过这些链接,只有当它们不包含"#"

时,才需要更改XPath表达式以提取href属性。
selector = response.xpath('//*/a[not(contains(@href, "#"))]/@href')