如何使用请求从此页面获取数据?

时间:2019-05-25 18:25:41

标签: python html http web-scraping python-requests

我正在尝试使用请求方法从this page获取房地产信息。

我所做的是试图找到在页面加载期间发送的正确HTTP请求。

首先,我使用第一个属性的街道地址作为关键字在Chrome调试工具中进行搜索。但是,没有找到包含关键字的内容。

然后,我手动查看了在加载过程中发生的HTTP请求,并发现了this

响应中包含位置信息:

"destination_addresses" : [
  "St George's Circus (Stop Y), London SE1 8EH英国",
  "62 Wandsworth Rd, Nine Elms, London SW8 2LF英国",
  "1 Water Ln, London EC3R 6EA英国",
  "Leman Street (Stop OH), Whitechapel, London E1 8ER英国",
  "17 Kidderpore Ave, London NW3 7SF英国",
  "12 Western Ave, East Acton, London W3 7UD英国",
  "47 Franklin House, Tyrrel Way, London NW9 7QA英国",
  "The Presbytery, Green St, Upton Park, London E13 9AX英国",
  "1 Bittacy Rd, London NW7 1BP英国",
  "7 Coxwell Boulevard, London NW9 4AB英国",
  "National Institute for Medical Research, London NW7 1AA英国",
  "45 Hackbridge Rd, Wallington SM6 7AY英国",
  "28A College Rd, Harrow HA1 1BE英国",
  "4 Balfour Rd, Hounslow TW3 1JX英国",
  "3312 Headstone Dr, Harrow HA1 4UP英国",
  "6 Nestles Ave, Hayes UB3 4QA英国",
  "6 Nestles Ave, Hayes UB3 4QA英国",
  "Keats Way, Coulsdon CR5 3FL英国",
  "Marsh Ln, Harlow CM17英国",
  "23 Cricket Field Grove, Crowthorne RG45 7ES英国"

但是,这里的地址与页面上显示的地址不同。

例如,响应中的第一个地址

"St George's Circus (Stop Y), London SE1 8EH" 

显示/转换为

"Blackfriars Road, Southwark, LONDON, GREATER LONDON, SE1 8EQ" 

在页面上。

有人可以告诉我如何使用请求获取页面上显示的数据吗?

1 个答案:

答案 0 :(得分:0)

使用html中列出的相同API。

enter image description here

当您通过搜索栏提交该API时,它似乎可用于检索信息。

尽管我只是按要求打印出地址,但您可以获得所有列表信息。优势-您可以获取所有搜索结果。

import requests

r = requests.get('https://www.barratthomes.co.uk/api/search/developments/bar/?additionalBrands=bar,bln').json()

for listing in r['results']:
    print(listing['adr'])