我试图通过刮取食物上的餐馆名称;然而它证明是困难的,因为第一个字符串是Eater给它的排名(例如1,2,3等)。如下面的HTML中所示:
<h2>
<span class="c-mapstack__card-index">1</span>
Merkelbach</h2>
我的代码目前抓住了1,这很好,但是我必须抓住餐馆的名字。所以我想抓住Merkelbach&#34;。我的代码如下,任何见解都会很棒。
from selenium import webdriver
driver = webdriver.Chrome('C:\Python27\Chromedriver\chromedriver.exe')
driver.get('http://www.eater.com/maps/best-amsterdam-restaurants')
for elem in driver.find_elements_by_xpath('.//span[@class = "c-mapstack__card-index"]'):
print elem.text
答案 0 :(得分:0)
您想要访问h2
中的文本,span
是h2
的父级。您可以通过使用/..
附加xpath从xpath中选择父级来访问from selenium import webdriver
driver = webdriver.Chrome('C:\Python27\Chromedriver\chromedriver.exe')
driver.get('http://www.eater.com/maps/best-amsterdam-restaurants')
for elem in driver.find_elements_by_xpath('.//span[@class = "c-mapstack__card-index"]/..'):
print elem.text
:
{{1}}
请注意,这将包含数字和名称,您可以自己拆分,或使用之前的xpath获取跨度的文本并将其从父文本中删除
答案 1 :(得分:0)
我的代码目前抓住1,这很好,但我必须抓住餐厅的名称
您应该找到<h2>
元素而不是<span>
,如下所示: -
for elem in driver.find_elements_by_xpath('.//h2[span[@class = "c-mapstack__card-index"]]'):
print elem.text