从第三方网站获取具体结果

时间:2016-01-10 18:17:21

标签: search

我正在尝试从realtor.ca获取2000年到2013年之间建造的所有房屋的结果。高级搜索没有此功能,但我试图查看是否可以添加搜索条件在网址中。

我查看了源代码,该值的id似乎是builtin_value。因此,我在网址字符串中添加了&builtin_value=2000,2011,2012,2013,但这不起作用。

1 个答案:

答案 0 :(得分:1)

稍微弄清楚网站的网址结构后,我同意您无法将builtin_value参数添加到网址中,而且似乎并不存在相当于。

话虽如此,我认为在这种情况下,Keywords文本框是您的朋友。我尝试进行一些示例搜索,输入 2001 作为Keywords文本框的值,并且只获得了2001年建造的房屋 - 与其他年份的实验相同。你可以利用这样一个事实,即没有人输入像2001这样的数字,除非它是在房子建成的那一年的背景下。但是,这是2000年的例外情况。输入关键字 2000 会带来大量的结果,包括每个约2000平方英尺的房子。因此,如果你可以从你的项目经理或老板那里勉强放松要求,你只需要在2000年之外建造几年,那么我认为你可以编写一个相对简单的程序,它只执行每年的请求(即for循环)迭代2000年至2013年),接受面值GET响应,并根据需要通过递增CurrentPage URL参数来分页数据,直到您不再获得结果。

如果真的需要2000年,那么你可以编写一个比我上面提到的更复杂的刮刀。它必须GET每个搜索结果并审核它确实建于2000年。

例如,请考虑以下网址:

  1. 搜索建于1971年的温哥华所有房屋:https://www.realtor.ca/Residential/Map.aspx#CultureId=1&ApplicationId=1&RecordsPerPage=9&MaximumResults=9&PropertySearchTypeId=1&TransactionTypeId=2&StoreyRange=0-0&BedRange=0-0&BathRange=0-0&Keywords=1971&LongitudeMin=-123.2340278625491&LongitudeMax=-122.85396957397488&LatitudeMin=49.21465057441378&LatitudeMax=49.34746245927539&SortOrder=A&SortBy=1&viewState=m&Longitude=-123.043998718262&Latitude=49.2811012268066&ZoomLevel=12&CurrentPage=1
  2. 在第3页搜索2000年建造的所有加拿大房屋(许多不相关的结果):https://www.realtor.ca/Residential/map.aspx#CultureId=1&ApplicationId=1&RecordsPerPage=9&MaximumResults=9&PropertySearchTypeId=1&TransactionTypeId=2&StoreyRange=0-0&BedRange=0-0&BathRange=0-0&Keywords=2000&LongitudeMin=-135.1318359375&LongitudeMax=-37.8369140625&LatitudeMin=44.707725934249424&LatitudeMax=70.92742296535133&SortOrder=A&SortBy=1&viewState=m&CurrentPage=3
  3. 搜寻2001年建成的加拿大所有房屋:https://www.realtor.ca/Residential/map.aspx#CultureId=1&ApplicationId=1&RecordsPerPage=9&MaximumResults=9&PropertySearchTypeId=1&TransactionTypeId=2&StoreyRange=0-0&BedRange=0-0&BathRange=0-0&Keywords=2001&LongitudeMin=176.220703125&LongitudeMax=10.810546875&LatitudeMin=4.483729141145389&LatitudeMax=72.9471586872288&SortOrder=A&SortBy=1&viewState=m&CurrentPage=2
  4. 我希望有所帮助。