/ / Невъзможно е да се получи подходящия XPath за елементи на уеб страниците в сканера на import.io - xml, xpath, web-crawler, import.io

Невъзможно е да се получи подходящия XPath за елементи на уеб страниците в обхождащия файл на import.io - xml, xpath, web-crawler, import.io

Опитвам се да създам.csv файл с филмовите данни от уебсайта Allociné (най-голямата френска база данни за филми) за изследователски проект, използвайки Crawler import.io, тъй като знанията ми по програмиране са лоши (в момента правя докторска степен по екология) и имам лесен за разбирайте инструмент изглежда като най-добрата идея.

За всеки филм ми трябва:

  1. заглавието на филма
  2. датата на излизане („Date de Sortie“ във FR)
  3. жанра (ите) на филма

Ето пример за филмова страница на Allociné (за Междузвездни войни I): http://www.allocine.fr/film/fichefilm_gen_cfilm=20754.html

Отначало опитах да използвам import.Инструментът за подбор на io, но не работи, тъй като някои филми имат две дати на издаване вместо една (като SW1 по-горе - първоначално издание през 1999 г. и 3D издание („reprise“) през 2012 г.) - който се прецака с Гусеницата. Така че трябваше да използвам XPaths за идентифициране на нужните ми елементи. Заглавието работи отлично (използва //title), но имам проблеми с датите на издаване и жанровете.

За датите на пускане XPath, който извадих от източника на страницата, е:

//*[@id="col_main"]/div[4]/div/div[2]/table/tbody/tr[2]/td/a/strong/span

добавих /@content в края, за да получите датата в yyyy-MM-dd формат, което доведе до:

//*[@id="col_main"]/div[4]/div/div[2]/table/tbody/tr[2]/td/a/strong/span/@content

Въпреки това import.io не разпознава елемента, който трябва да го намери.

За жанрове, същото нещо, получих този XPath от Chrome за първия жанр (научна фантастика):

//*[@id="col_main"]/div[4]/div/div[2]/table/tbody/tr[5]/td/a[1]/span

Имам нужда от import.io, за да събера всички жанрове, затова премахнах [1] от a[1] за да получите цялостта на a.

//*[@id="col_main"]/div[4]/div/div[2]/table/tbody/tr[5]/td/a/span

И това не работи, import.io връща нулев елемент.

Така че всяко обяснение защо не работи ще бъде изключително ценено! И съжалявам, ако пропуснах нещо очевидно очевидно, както казах, изобщо не съм специалист.

Блез

Отговори:

2 за отговор № 1

За датата на издаване опитайте:

// участъка [@ itemprop = "datePublished"] / @ съдържание

Това основно означава: намерете span възел, който има атрибут, наречен "datePublished", и извлечете атрибута, наречен "content"

А за жанра опитайте:

// участъка [@ itemprop = "жанр"] / текст ()

Това означава да намерите span възел, който има атрибут, наречен "жанр", и извлечете текста, който го следва.