-1

我在一个网站上运行这个蜘蛛。它工作正常,但我遇到的一个问题是有许多以“#”作为链接的href。

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

4

2 回答 2

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}
于 2017-02-20T23:07:56.310 回答
0

为了跳过这些链接,您需要更改 XPath 表达式以仅在它们不包含“#”时提取 href 属性

selector = response.xpath('//*/a[not(contains(@href, "#"))]/@href')
于 2017-02-22T08:24:56.767 回答