我试图在程序Bulk Image Downloader
中使用忽略列表,并且包含/排除列表使用正则表达式。该程序允许您搜索如下范围:
http://example.com/gallery/page[1-99].htm
从页面中取出图像
example.com/gallery/page1.htm
example.com/gallery/page2.htm
…
example.com/gallery/page99.htm
很简单,对吧?当搜索使用"yyyymmdd"
格式而不是简单的"page#"
格式的站点时,会出现这个问题。
I came up with this
example.com/[yyyy0101-yyyy1231].html
我从yyyy
处下载的任何年份拉出所有适当的页面,我只是通过并删除糠。问题是,它搜索的不是365页1131,需要12倍的时间来搜索,因为它搜索了所有不存在的日期,并尝试了4次没有响应的页面。
然后我找到了一个解决方法:
example.com/images/[yyyy0101-yyyy1231].png
因为我下载的一些网站的图片都在一个地方。但我遇到了同样的问题,但方向相反。图像搜索几乎立即结束,但所有不存在的日期都有错误的图像(程序给它们占位符),这些图像在下载而不是搜索时需要永远浏览。
因此,我尝试为排除列表编写一个正则表达式,它将自动删除在不存在的日期范围中找到的任何内容。我甚至查了一下每个月有多少天,并确保在2月29日离开闰年。看哪。
[0132-0200]
[0230-0300]
[0332-0400]
[0431-0500]
[0532-0600]
[0631-0700]
[0732-0800]
[0832-0900]
[0931-1000]
[1032-1100]
[1131-1200]
证明正则表达式并不像程序本身那样工作。我试着查了一下,坦率地说,我不太懂。
那么这到底应该是什么样子呢?
我不需要排除正则表达式是什么,因为它将进入忽略列表。虽然它可能对别人有用。
编辑
我希望程序通过隔离无效/不存在的mmdd日期来仅显示照片上真实日期的图片。我不知道程序使用了什么风格的正则表达式。从他们的网站:
以下字符在正则中使用时具有特殊含义表达式,如果希望使用,则必须以反斜杠(
)作为前缀它们作为正则表达式中的字面量。
[, , ^, $, ., |, ?, *, +, (, ), /
^ =行开始$ =行结束。=匹配任意字符x = use文字字符x
有关正则表达式的详细说明,请访问http://wikipedia.org/wiki/Regular_expression
编辑
根据Bulk Image Downloader使用的正则表达式引擎,您可以尝试:
example.com/[201301-201312](0[1-9]|[1-2][0-9]|3[0-1]).html
这应该允许您选择所选年份的有效月份
[201301-201312]
那么日期可以是01 - 09
0[1-9]
10-29
[1 - 2] [0 - 9]
或30、31日
3[0-1]
使用or运算符将日期部分组合成一个组
(0[1-9]|[1-2][0-9]|3[0-1])
如上所述把它们放在一起,它可能会工作一整年。同样,这取决于他们决定使用哪个正则表达式引擎。