我正在尝试从这个网站(https://pigeon-ndb.com/races/)获取数据。通过单击一个下拉菜单(“选择组织”)中的一个选项值,然后单击后续下拉菜单(“选择比赛”)中的另一个值来访问数据,该下拉菜单根据上一个下拉菜单中单击的值填充选项
我们的目标是在通过两个下拉菜单后进入数据值表,并用scrapy将它们刮去
我已经尝试使用这个xpath获取第一个下拉菜单(“选择组织”)中的选项值
response.xpath('//select[@id="organization-selection"]/option/@value').extract()
Output:[u'<option disabled>Loading...</option>']
我期望从下拉菜单中的所有选项得到值(多于1个),但只得到1个不有用的选项值
我希望避免使用Selenium来点击选项(太慢)。希望有个棘手的解决办法。谢谢
如果仔细检查发送的请求,您将注意到在其他请求中有两个GET请求正在发送
https://pigeon-ndb.com/api/?request=get_organizations&database=2019%20OB&_=1556648619801
以及
https://pigeon-ndb.com/api/?request=get_races&organization=AMARILLO%20RACING%20PIGEON%20CLUB&orgNum=null&_=1556648619803
他们将把组织和比赛作为json返回。这取决于你如何利用第一个组织中的每一个组织来构建第二个组织
编辑:注意您需要在Cookies头中发送数据库
编辑2:
这将打印前两个组织的比赛。 此外,您还可以提供u作为param—这是来自Epoch的时间戳
关于比赛细节,请看
https://pigeon-ndb.com/api/?request=get_race_details&racename=BIG%20SPRING&date=03%2F23%2F2019&time=1556501306
在这里,时间是必须的
相关问题 更多 >
编程相关推荐