我是一名GIS学生,在一个专注于映射非结构化数据的项目中工作,在该项目中,我编写了一个php脚本来抓取以下页面,该页面显示了美国GIS职位发布的搜索结果,以导出为xml,地理编码和地图。
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个),以便只需要抓取一个页面?
(在第一个URL的末尾添加&listings_per_page=100不起作用)
发布于 2011-07-24 16:07:57
这是如何工作的:
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的format属性。你最好的办法是抓取第一页,使用下一个链接,然后继续爬行,直到你得到你需要的100个工作列表。
https://stackoverflow.com/questions/6806138
复制相似问题