使用XPATH从特定表/网站获取数据

时间:2016-06-05 18:39:23

标签: python xml xpath

我试图使用xpath从网站获取一些值。 http://irvingmasjid.org/index.php

如果你看右上角应该是一个带有一些值的表。我想得到的是标题下面的6个数字值" Adhan"意思是:

4.39,6.20等。

我知道你需要在html代码中找到一些独特的东西,我发现了这个:

//*[@id='slideshow-305-57546dc930cff']

但我不知道如何从那里继续前进到我想要的价值观。我正在尝试这样的事情:

dict = {}

url = "http://irvingmasjid.org/index.php"

rows_xpath = XPath("//*[@id='slideshow-305-57546dc930cff']/")


for id,row in enumerate(blabla:::)
    get the values here... 

从未使用过很多python也是xpath很抱歉无法提供更多信息。如果你有代码示例,请不胜感激。

2 个答案:

答案 0 :(得分:1)

这个案例的有趣之处在于,您甚至不需要解析HTML - 您正在从其他网址检索您正在搜索的数据:

>>> from pprint import pprint
>>> import requests
>>> 
>>> url = "http://irvingmasjid.org/salah2016.php"
>>> response = requests.get(url)
>>> 
>>> pprint(response.json())
{u'_day_of_year': u'157',
 u'adhan_asr': u'5:09',
 u'adhan_dhuhr': u'1:29',
 u'adhan_fajr': u'4:39',
 u'adhan_isha': u'9:49',
 u'adhan_maghrib': u'8:37',
 u'day': u'12:37',
 u'j_asr': u'6:00',
 u'j_dhuhr': u'1:45',
 u'j_fajr': u'5:15',
 u'j_isha': u'10:15',
 u'jumuah_1': u'1:45',
 u'jumuah_2': u'2:45',
 u'midnight': u'12:37',
 u'month_date': u'12:37',
 u'sunrise': u'6:20',
 u'tahajjud': u'1:57'}

答案 1 :(得分:0)

在谷歌浏览器中,如果你检查一个元素,然后右键单击它并选择“复制>复制XPath”它应该生成你需要的xpath。 See this picture

我不确定你从哪里获得id值,除非它定期更改。目前,该div的id值为slideshow-305-575473207d5b6

编辑:好的,是的,看起来这个div的id是随机生成的(刷新页面几次......每次都应该不同)。因此,以此为出发点是没有用的。也可以直接转到td元素,因为它们有自己的ID。