如何为此网站加载数据?

时间:2014-03-08 03:02:46

标签: ajax web web-crawler

我正在开发一个网络抓取工具,以便从www.seek.com.au获取一些招聘广告。当我搜索" ios"时,请求网址将是 " http://www.seek.com.au/jobs/in-australia/#dateRange=999&workType=0&industry=&occupation=&graduateSearch=false&salaryFrom=0&salaryTo=999999&salaryType=annual&advertiserID=&advertiserGroup=&keywords=ios&page=1&isAreaUnspecified=false&location=&area=&nation=3000&sortMode=KeywordRelevance&searchFrom=quick&searchType="

如果它在浏览器中,您将看到所有与ios相关的作业。但是,实际上在http响应中根本找不到任何作业信息。所以我猜数据是以ajax方式获取的。但令人惊讶的是,在仔细浏览浏览器监控工具提供的信息之后,我没有找到这样的ajax请求/响应。

所以我的问题是,作业相关数据是如何加载的?他们来自哪里?如果是ajax请求,url是什么?响应是什么样的?

1 个答案:

答案 0 :(得分:0)

第一次单击URL时,整个URL将发送到服务器。服务器可以解析URL(或Fragment Identifier)的“哈希”部分,并检索页面的初始状态以及HTML代码。这可能是您之后无法看到任何AJAX请求的原因。

现在,如果您编辑URL的哈希部分,Javascript将能够检测到(请参阅https://stackoverflow.com/a/680865/368544,例如)。

我在页面上尝试了它,发现向https://api.seek.com.au/v2/jobs/search?&callback=jQuery18206269974991255204_1394249755755&keywords=&hirerId=&hirerGroup=&page=1&classification=&subclassification=&graduateSearch=false&location=&nation=3000&area=&isAreaUnspecified=false&worktype=&salaryRange=0-999999&salaryType=annual&dateRange=999&sortMode=ListedDate&engineConfig=&usersessionid=bkbtlmlxcrqb4tfi5mvmck1r&_=1394249843957发出GET AJAX请求,显然会产生JSONP响应。参数看起来非常相似。