【发布时间】:2016-12-21 03:37:16
【问题描述】:
我正在尝试从许多与此类似的页面中抓取一些平均 GPA 数据和更多数据:
http://www.ptcas.org/ptcas/public/Listing.aspx?seqn=3200&navid=10737426783
require 'mechanize'
agent = Mechanize.new
page = agent.get('http://www.ptcas.org/ptcas/public/Listing.aspx?seqn=3200&navid=10737426783')
gpa_headers = page.xpath('//h3[contains(text(), "GPA")]')
pp gpa_headers
我的问题是gpa_headers 为 nil,但至少有一个 h3 元素包含“GPA”。
什么可能导致此问题?我认为可能是因为页面有动态元素,Mechanize 对此有一些问题,但我可以puts page.body 并且输出包括:
... <h3 style="text-align:center;">GPA REQUIREMENT</h3> ...
根据我的理解,应该可以在我使用的 xpath 中找到。
如果有更好的方法,我也想知道。
【问题讨论】:
标签: ruby web-scraping nokogiri mechanize