我在一个网站上运行这个蜘蛛。它工作正常,但我遇到的一个问题是有许多以“#”作为链接的href。
如何完全跳过或删除这些 # 链接?我当前正在输出文件的链接,并使用lstrip
转储“”到文件。我也试过i.replace
了,但它仍然在文件中删除一个空行。
我在一个网站上运行这个蜘蛛。它工作正常,但我遇到的一个问题是有许多以“#”作为链接的href。
如何完全跳过或删除这些 # 链接?我当前正在输出文件的链接,并使用lstrip
转储“”到文件。我也试过i.replace
了,但它仍然在文件中删除一个空行。
对于与您的选择器匹配的所有内容,您正在yield
学习。有条件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')