使用python在下拉html框中获取数据

时间:2017-03-04 22:06:05

标签: python html beautifulsoup

我想在下拉框中获取模型:

http://www.trademe.co.nz/motors/used-cars/bmw

from bs4 import BeautifulSoup
import requests 
url="http://www.trademe.co.nz/motors/used-cars/bmw"
r= requests.get(url)
soup = BeautifulSoup(r.content)


price=soup.find("select",{"id":"15"})
options = price.find_all("option")


print(options)

输出

[<option selected="selected" value="">Any model</option>]

我想要一个下拉框中所有模型的列表。

1 个答案:

答案 0 :(得分:0)

看起来像是使用ajax加载数据。这样,当您使用python请求页面时,仍然只加载了一个选项。

在Chrome调试器中检查网络标签,您可以获取此url,其中会返回 BMW 的模型。现在您可以请求此网址。

import requests
url = "http://www.trademe.co.nz/API/Ajax/UsedCarsModels.aspx?make=BMW"
data = requests.get(url).json()
print data['models']

希望这有助于你