我正在尝试从网站获取天气并收集此数据。但某些请求返回空列表或其他预期的信息。为什么会发生这种情况?从网站获取正确的xpath和信息的正确格式和方法是什么。
我曾尝试使用多个网站,但始终无法获得结果。
import requests
from lxml import html
site1data = requests.get('http://m.bom.gov.au/vic/melbourne/', verify =
False)
tree = html.fromstring(site1data.content)
humidity = tree.xpath('//div[@class="humidity"]/text()')
print(humidity)
预期结果如下: 67% 但我得到了: ['\ n \ t \ t \ t \ t \ t \ t','\ n \ t \ t \ t \ t \ t \ t','\ n \ t \ t \ t \ t \ t \ t','\ n \ t \ t \ t \ t']
答案 0 :(得分:3)
因为您要查找的文本数据显示在<p>
标记内,而不显示在<div>
本身内:
<div class="humidity">
<h3>Humidity</h3>
<img class="humidity" src="/assets/images/ui/humidity.svg" />
<p>65%</p>
</div>
此xpath应该可以解决您的紧迫问题:
humidity = tree.xpath('//div[@class="humidity"]/p/text()')
答案 1 :(得分:2)