我正试图通过python web scrap程序在TripAdvisor的特定日期范围内获取特定区域内特定区域内所有酒店的价格。我的程序使用硒选择日期范围以及在将数据解析为BeautifulSoup时向网站加载。 价格数据位于站点的内部类中。 Inspect element
我正在使用此代码,并给我ResultSet对象没有属性错误。
html = browser.page_source
textobj = BeautifulSoup(html,"html.parser")
text1=textobj.find_all('div', attrs={'class': 'vr_listing'})
for item in text1:
foo=item.find_all('div', attrs={'class' : 'price'})
price=foo.text.strip()
print(price)
使用Python 3.7 无法弄清楚该怎么办。
答案 0 :(得分:0)
如果您可以提供所使用的链接,这样我们可以重现此问题,那就太好了。但是您可以尝试以下代码行吗:
html = browser.page_source
textobj = BeautifulSoup(html,"html.parser")
prices = textobj.findAll('div', {'class':'price'}).text
for price in prices:
print(price)
'''
text1=textobj.find_all('div', attrs={'class': 'vr_listing'})
for item in text1:
foo=item.find_all('div', attrs={'class' : 'price'})
price=foo.text.strip()
print(price)
'''
答案 1 :(得分:0)
这里:
foo = item.find_all('div', attrs={'class' : 'price'})
price = foo.text.strip()
find_all()
返回resultSet
(可在标记集合上迭代),而不是单个标记。如果您希望item
中只有一个匹配标签,请改用item.find(...)
:
foo = item.find('div', attrs={'class' : 'price'})
price = foo.text.strip()
否则遍历结果集:
foos = item.find_all('div', attrs={'class' : 'price'})
prices = [foo.text.strip() for foo in foos]