【发布时间】:2019-12-11 17:40:20
【问题描述】:
我正在尝试获取以下链接中所有可用旅馆的名称。问题是名称是动态生成的,这就是我无法使用get 请求获取它们的原因。但是,当我发出带有适当有效负载的post 请求时,我可以从它的登录页面获取名称。当我单击show more records 按钮时出现问题,因为我可以看到负载中的一个额外字段'lr': '87' 正在添加,我无法以正确的方式使用它。
当我点击show more records按钮时增加的数字是87,227,384,457等等。
这是我尝试解析的内容(为前几个名字工作):
import requests
from bs4 import BeautifulSoup
url = 'http://hosteldunia.com/controller/search2.php'
payload={
'address': 'hyderabad',
'forWhom': 'Men',
'accomodationType': 'undefined',
'min': '2000',
'max': '20000',
'filter': 'single|doubleShare|tripleShare|fourShare|fiveShare'
}
session = requests.Session()
r = session.post(url,data=payload)
soup = BeautifulSoup(r.text,'lxml')
for item in soup.select("h5.hover-title-top"):
print(item.text)
如何使用请求从该链接中获取所有名称?
【问题讨论】:
标签: python python-3.x web-scraping