Я сканирую website, у которого есть несколько таблиц. В частности, я хотел бы извлечь из всех таблиц (если есть), первый столбец (presentation
) и company name
(который находится в этом XPath: .//*[@id='accordion']//h3
), что-то вроде этого (а формат два измерения):Проблемы при попытке получить конкретные предметы и отформатировать их с помощью селена?
['Mission Pharmacal (Reverified 01/21/2015)' , '250 mg (NDC 01780-500-01)']
['Hospira, Inc. (Reverified 11/07/2016)', '5 mEq/mL; 20 mL vial (NDC 0409-6043-01)']
['Shire US Inc. (Reverified 07/01/2016)', 'AGRYLIN® (anagrelide hydrochloride) Dosage Form: 0.5 mg capsules for oral administration (NDC 54092-063-01)']
['Teva Pharmaceuticals (Reverified 11/01/2016)', '1mg 100 (NDC 00172-5240-60)']
['Teva Pharmaceuticals (Reverified 11/01/2016)', '0.5 mg 10 (NDC 00172-5241-60)']
['Jazz Pharmaceuticals, Inc. (Revised 11/14/2016)', 'ERWINAZE 10,000 IU lyophilized powder supplied in a clear 3 mL glass vial 5 vial carton (NDC 57902-249-05)']
[' Jazz Pharmaceuticals, Inc. (Revised 11/14/2016)', 'ERWINAZE 10,000 IU lyophilized powder supplied in a clear 3 mL glass vial 1 vial (NDC 57902-249-01)']
До сих пор я пробовал подход ниже. Тем не менее, я не понимаю, как настроить список, и я не понимаю, почему я не поймаю некоторые скрытые элементы, начиная с аккордеона.
В:
from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get('http://www.accessdata.fda.gov/scripts/drugshortages/default.cfm')
links = driver.find_elements_by_xpath('''.//*[@id='tabs-1']//tbody//td[1]//a[2]''')
links = [x.get_attribute('href') for x in links]
lis = list()
for x in links:
driver.get(x)
#.//*[@id='accordion']//div//table
xpath_list = ['.//*[@id="accordion"]//div//tr//td[1]', ".//*[@id='accordion']//h3//a"]
full_content = [[x.text for x in driver.find_elements_by_xpath(xpath)] for xpath in xpath_list]
lis.append(full_content)
lis
Out:
[[['250 mg (NDC 01780-500-01)'], []],
[['5 mEq/mL; 20 mL vial (NDC 0409-6043-01)'], []],
[['AGRYLIN® (anagrelide hydrochloride) Dosage Form: 0.5 mg capsules for oral administration (NDC 54092-063-01)',
'',
''],
['Shire US Inc. (Reverified 07/01/2016)',
'Teva Pharmaceuticals (Reverified 11/01/2016)']],
[['ERWINAZE 10,000 IU lyophilized powder supplied in a clear 3 mL glass vial 5 vial carton (NDC 57902-249-05)',
'ERWINAZE 10,000 IU lyophilized powder supplied in a clear 3 mL glass vial 1 vial (NDC 57902-249-01)'],
['Jazz Pharmaceuticals, Inc. (Revised 11/14/2016)']],
[['0.4 mg/mL, 1 mL single-dose vial, package of 25 (NDC 00517-0401-25)',
'1 mg/mL, 1 mL single-dose vial, package of 25 (NDC 00517-1010-25)',
'',
'',
'',
'',
'',
''],......
Спасибо за помощь !. Дело в том, что меня интересует итерация содержимого каждой ссылки на веб-сайте (а не на странице, которую вы указали). В частности, для получения первого столбца каждой таблицы и названия компании, расположенной в аккордеоне, а не получения указателя, который вы указали. – student
Я обновил вопрос с более подробной информацией, спасибо за помощь! – student