最近使用Webmagic进行过滤url的时候:如下格式的
page.addTargetRequests(page.getHtml().links().regex("(https://github\\.com/[\\w\\-]+/[\\w\\-]+)").all());
page.addTargetRequests(page.getHtml().links().regex("(https://github\\.com/[\\w\\-])").all());
总是无法正确过滤到url。
各种问题处理。
跟中Pattern,match,find()。都没找到问题所在。
2020年2月22日17:49:55今天大半天。处理。在偶然间,跟踪到匹配的时候。
发现了regex的表达式,在匹配的地方,竟然发生了变化。
https://github\\.com/[\\w\\-] 这种在Webmagic中生效
但在SpringCloud环境中不生效。
调整格式后发现:https:\\/\\/github\\.com\\/[\\w\\-]
结果Debug的时候竟然出现了:https:\\\\/\\\\/github\\\\.com\\\\/[\\\\w\\\\-]
到此问题找到了。
所以regex增则表达式,前端存储的时候,仍然按照正常的增则表达式格式来存储。
java会默认进行处理一次。
所以URL的正则表达式格式应该存储为:https:\/\/github\.com\/[\w\-]+