构造URL以显示用于抓取数据的所有结果

时间:2011-07-24 07:25:04

标签: php xml web-scraping

我是一名GIS学生,致力于一个专注于绘制非结构化数据的项目,我在其中编写了一个php脚本,用于显示以下页面,该页面显示美国GIS职位发布的搜索结果,导出到xml,地理编码和地图。< / p>

http://gisjobs.com/search_results_jobs/?action=search&listing_type%5Bequal%5D=Job&keywords%5Blike%5D=&Country%5Bmulti_like%5D%5B%5D=United+States&State%5Bmulti_like%5D%5B%5D=&City%5Blike%5D=&Salary%5Bnot_less%5D=&Salary%5Bnot_more%5D=&SalaryType%5Bmulti_like%5D%5B%5D=

但是,结果页面默认为每页10个结果。您可以更改结果以在搜索后显示100个结果,足以通过抓取一页来覆盖所有结果。但是当您更改为显示100个结果时,URL将更改为:

http://gisjobs.com/search_results_jobs/?listings_per_page=100&restore=&page=1

从php调用时会调出一个空查询。有没有办法构建URL以显示所有结果(最多100个),因此只需要抓取一个页面?

(在第一个网址末尾添加&amp; listings_per_page = 100不起作用)

1 个答案:

答案 0 :(得分:0)

这是如何工作的:

http://gisjobs.com/search_results_jobs/?action=search&listing_type[equal]=Job&keywords[like]=&Country[multi_like][]=United+States&State[multi_like][]=&City[like]=&Salary[not_less]=&Salary[not_more]=&listings_per_page=100&SalaryType[multi_like][]=

您只需将属性&listings_per_page=100附加到查询中即可。这应该与其他API类似。

看起来你可以返回的最多结果是36,除非他们有一个格式属性,你可以指定html,json或xml。您最好的选择是刮掉第一页并使用下一个链接并继续抓取,直到您获得所需的100个职位列表。