我有一个工作流程,可以在keywords.csv中获取用户指定的关键字。然后,它开始搜索查询页面,其中关键字迭代为搜索网址的一部分。这之前很简单,因为我可以在一个页面上使用url参数li=100000
显示所有结果。他们改变了它,所以我必须得到单页并从那里提取它。
问题是,我是talend的新手,并从同事那里得到了这个工作流程。这里是概述,执行旧的li = 100000并将所有结果写入单独的文本文件(keyword_1.txt,keyword_2.txt,....):
以下是来自职位门户网站absolventa的示例查询:
http://www.absolventa.de/stellenangebote?query%5Bcity%5D=&query%5Bradius%5D=100&query%5Btext%5D=SAP&utf8=%E2%9C%93
我现在的问题是 - 如何在talend中添加该功能以获取page1,然后在第2页中添加所有指定的关键字。并将其添加到我的流程中。请解释低级别,因为我是Talend的新手。
提前多多谢谢你!
答案 0 :(得分:1)
您希望使用tLoop组件集来使用for循环遍历所有可能的页面。
因此,您希望在tFlowToIterate组件之间连接tLoop,然后将循环迭代变量连接到您的URL,例如:
"http://www.absolventa.de/stellenangebote?page=" +
((Integer)globalMap.get("tLoop_1_CURRENT_ITERATION")) +
"&query%5Bcity%5D=&query%5Bradius%5D=100&query%5Btext%5D=SAP&utf8=%E2%9C%93"
我不确定当页面什么都不返回时你怎么能结束它(你需要一个while循环可以在处理循环后设置条件)但是如果你只需将输出文件设置为append,然后如果没有返回任何内容,则它不会向文件添加任何内容。您仍然遇到以下问题:您需要将tLoop组件中的循环数量设置得足够高以覆盖任何可能的情况,但这会产生大量无意义的请求以获取这些空白页面
你可以用一些额外的努力将它重新修改成一个循环循环,但我没有太多的经验。