我开始学习scrapy,我想废弃一个sitemap.xml来废弃其中的所有页面,然后废弃页面中来自sitemap的特定链接。
例如:
在我的网站Map上,我有link1。我转到link1,在页面内部,我想废弃一个名为linkA的特定链接,以获得该链接的内容页。
首先,我为 parse_step1 定义了正则表达式规则,它允许我从站点Map中获取特定的url,它运行得很好。
然后,我不知道如何告诉我的刮刀 “从链接中删除页面,找到一个特定的网址并删除这个特定网址的页面内容”。
我试图添加第二个由regex验证的规则,但我无法使其工作。
class SiteSpider(SitemapSpider):
name = 'site'
allowed_domains = ['domain.fr']
# generate_start_urls()
sitemap_urls = ["https://domain.fr/mainsitemap.xml"]
sitemap_rules = [('^.*\/([a-zA-Z]{2})\/\/?.*', 'parse_step1'),
('.*\/[0-9]{2}', 'parse_step2')
]
有什么见解吗?
谢谢你
1条答案
按热度按时间ffx8fchx1#
1.你有一个链接到一个网站传递到你的Scrapy脚本
1.在报废过程中,您会获得一些其他链接
1.将此链接传递到Scrapy脚本
1.重复播放
例如,如果站点1带有链接1和链接2,然后跟随链接1到达带有链接3的站点2......因此,在这里您可以使用
Depth First Search algorithm
来实现它。recursion
调用你的函数来实现它。我还可以看到使用
xml.etree.ElementTree
的另一种方法(因为您使用的是xml文档):