我正在尝试从搜索框中提取数据,您可以在wikipedia上看到一个很好的示例
这是我的代码:
driver = webdriver.Firefox()
driver.get(response.url)
city = driver.find_element_by_id('searchInput')
city.click()
city.clear()
city.send_keys('a')
time.sleep(1.5) #waiting for ajax to load
selen_html = driver.page_source
#print selen_html.encode('utf-8')
hxs = HtmlXPathSelector(text=selen_html)
ajaxWikiList = hxs.select('//div[@class="suggestions"]')
items=[]
for city in ajaxWikiList:
item=TestItem()
item['ajax'] = city.select('/div[@class="suggestions-results"]/a/@title').extract()
items.append(item)
print items
Xpath表达式没问题,我检查了一个静态页面。如果我取消了打印废弃html代码的行的注释,则该框的代码将显示在文件的末尾。但出于某种原因,我不能用上面的代码从中提取数据?我必须错过一些东西,因为我尝试了两个不同的来源,维基百科页面只是另一个来源,我不能得到这些数据提取。 有什么建议吗?谢谢!在
不要传递
.page_source
,它在您的例子中包含一个空的suggestions
div,而是获取元素的innerHTML
,并将其传递给Selector
:输出:
^{pr2}$请注意,最好使用selenium^{} 特性来等待元素可访问/可见,请参见:
另外,请注意} 。在
HtmlXPathSelector
已弃用,请改用^{相关问题 更多 >
编程相关推荐