n*w 发帖数: 3393 | 1 想写个robot自动去不同的网站去下载。这些网站常常要login。
Robot
- Login
- Fill text box
- Submit
- Click a link
- Save file
...
A typical Download process
- Login
- Iterate pages
- Download files from links
- Logging,
command? Iterator? Abstract Factory or factory method? |
k***r 发帖数: 4260 | 2 都不需要吧?找个合适的http client library最重要了
【在 n*w 的大作中提到】 : 想写个robot自动去不同的网站去下载。这些网站常常要login。 : Robot : - Login : - Fill text box : - Submit : - Click a link : - Save file : ... : A typical Download process : - Login
|
n*w 发帖数: 3393 | 3 要下载的文件分布在很多页,不同网站有不同的换页方式。有好些个网站。这部分可以
考虑一下。
.net有什么http client library?
【在 k***r 的大作中提到】 : 都不需要吧?找个合适的http client library最重要了
|
k***r 发帖数: 4260 | 4 简单的OO就可以了吧。我不用.net,不清楚library。应该有open source吧。
【在 n*w 的大作中提到】 : 要下载的文件分布在很多页,不同网站有不同的换页方式。有好些个网站。这部分可以 : 考虑一下。 : .net有什么http client library?
|
g*****g 发帖数: 34805 | 5 If you really want to use pattern, factory would be enough.
You may find download process not often typical though.
【在 n*w 的大作中提到】 : 想写个robot自动去不同的网站去下载。这些网站常常要login。 : Robot : - Login : - Fill text box : - Submit : - Click a link : - Save file : ... : A typical Download process : - Login
|
c**t 发帖数: 2744 | 6 nsoftware IPWorks, not free;
or you may try curl
【在 n*w 的大作中提到】 : 要下载的文件分布在很多页,不同网站有不同的换页方式。有好些个网站。这部分可以 : 考虑一下。 : .net有什么http client library?
|
h***i 发帖数: 1970 | 7 template method pattern
【在 n*w 的大作中提到】 : 想写个robot自动去不同的网站去下载。这些网站常常要login。 : Robot : - Login : - Fill text box : - Submit : - Click a link : - Save file : ... : A typical Download process : - Login
|
c*****t 发帖数: 1879 | 8 Template pattern is overkill since in LZ's case, the sequences of
actions are fairly clear. Template pattern is more for situations
where the sequence of actions are unknown. It is basically MVC
pattern without controler.
In LZ's case, a good html library is more than anything. The rest
are fairly trivial.
【在 h***i 的大作中提到】 : template method pattern
|
n*w 发帖数: 3393 | 9 对于下面这些抽象,每个网站都是不确定的。
- Login
- Iterate pages
- Download files from links
应该template method合适。
download() {
login();
for (var pageIter=new PageIter(); pageIter.next();) {
for (var linkIter=new LinkIter(); ...
download(linkIter);
}
}
} |
i***c 发帖数: 301 | 10 webclient
webrequest
【在 n*w 的大作中提到】 : 要下载的文件分布在很多页,不同网站有不同的换页方式。有好些个网站。这部分可以 : 考虑一下。 : .net有什么http client library?
|