我从一个网站上抓取一些数据,有时他们会显示milage,有时他们会在车辆描述中显示MPG 这是HTML
我使用的是xpath,只需按顺序进行
相关部分如下:
def init_driver():
options = webdriver.ChromeOptions()
options.binary_location = '/usr/bin/google-chrome-stable'
options.add_argument('headless')
options.add_argument('window-size=1200x600')
driver = webdriver.Chrome(chrome_options=options)
driver.wait = WebDriverWait(driver, 5)
return driver
def scrape(driver):
#Tymm = year make model All three attributes are in the Header, Parse and separate before insterting to SQL
ymm_element = driver.find_elements_by_xpath('//*[@id="compareForm"]/div/div/ul/li/div/div/h3')
engine_element = driver.find_elements_by_xpath('//*[@id="compareForm"]/div/div/ul/li/div/div/div[3]/dl[1]/dd[1]')
trans_element = driver.find_elements_by_xpath('//*[@id="compareForm"]/div/div/ul/li/div/div/div[3]/dl[1]/dd[2]')
milage_element = driver.find_elements_by_xpath('//*[@id="compareForm"]/div/div/ul/li/div/div/div[3]/dl[1]/dd[3]')
由于元素的顺序对于所有车辆都不相同,所以我需要编写它,以便它能够检索到我想要的标题之后的文本。在
以下是从元素检查中复制chrome上的HTML之后的HTML:
^{pr2}$基本上,我需要搜索标题后面的文本,而不是给xpath编号。在
我的年份和型号都在同一个元素”标签上,你能给我指出正确的方向吗?还是建议你用一个图书馆的平头
首先,使用xpath可以使用contains,如下所示:
它看起来更干净,更容易使用,更坚固。在
第二,阅读xpath跟随同级、前置同级、父级和祖先。它将帮助您构建简洁的xpath定位器:
^{pr2}$无论您的html元素位于哪个顺序,上面的xpath都可以工作。在
相关问题 更多 >
编程相关推荐