【问题标题】:Extracting URLs from page? [duplicate]从页面中提取 URL? [复制]
【发布时间】:2013-08-16 20:11:04
【问题描述】:

我一直在玩这方面的变化:

'//*[@id="mw-content-text"]/div[2]/table/tbody/tr/td/div/ul/li/a'

作为一个 XPath,从这个 wiki 页面获取所有学区 URL:http://en.wikipedia.org/wiki/List_of_school_districts_in_Arkansas。什么是正确的 XPath?

提前致谢!

代码sn-p:

            print 3.1, tree.xpath('//*[@id="mw-content-text"]/div[2]')
            print 3.2, tree.xpath('//*[@id="mw-content-text"]/div[2]/table')
            print 3.3, tree.xpath('//*[@id="mw-content-text"]/div[2]/table/tbody')
            print 3.4, tree.xpath('//*[@id="mw-content-text"]/div[2]/table/tbody')     
            print 3.5, tree.xpath('//*[@id="mw-content-text"]/div[2]/table/tbody/tr/td/div/ul/li/a/text()')                           
            for row in tree.xpath('//*[@id="mw-content-text"]/div[2]/table/tbody/tr/td/div/ul/li/a/text()'):
                print row
                district_urls.append('http://en.wikipedia.org'+row.get('href')) 

作为参考:

3.1 [<Element div at 0x1109f7f00>]
3.2 [<Element table at 0x1109f7f00>]
3.3 []
3.4 []
3.5 []

【问题讨论】:

    标签: python xpath


    【解决方案1】:

    试试这个:

    //*[@id="mw-content-text"]/div[2]/table/tr/td/div/ul/li/a/text()
    

    【讨论】:

    • 没用。我发布了一些输出,您可以看到除了表格对象之外,我无法访问任何内容。
    • 在 Jens Erat 关于萤火虫的提醒的帮助下更新了帖子。
    【解决方案2】:

    我猜你一直在使用 Firebug 或类似的开发工具创建这个 XPath 表达式。他们在需要&lt;tr/&gt;s 周围的&lt;tbody/&gt; 标记的DOM 上工作,如果源代码中没有给出这些标记,这些将被插入。查看页面源代码时(使用 Firebug,必要时使用wgetcurl),您会发现没有&lt;tbody/&gt; 标签。

    使用这个表达式:

    //*[@id="mw-content-text"]/div[2]/table/tr/td/div/ul/li/a
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多