2014-02-12 2 views
0

Я довольно новичок в Scrapy, поэтому, пожалуйста, медведь со мной на мгновение.не может найти правильный xpath под оболочкой

Я хочу, чтобы очистить this page следующей информацию

  • проект аббревиатуры (PROTECTRAIL)
  • проекта Краткого описание (Железнодорожная-Индустрия партнерство по комплексной безопасности железнодорожного транспорта)
  • проекта длинного описания (Перед лицом проблемы улучшения [...] зданий и инфраструктуры)

Использование Google Скребок У меня есть возможность ред эти элементы и определили их Xpath на странице HTML

  • акроним: //*[@id='recorddetails']/div/div[1]/h1
  • Краткое описание: //*[@id='recorddetails']/div/div[1]/h2
  • длинное описание: //*[@id='recorddetails']/div/div[4]/div[2]/div[1]/p/text()

Я затем протестировали следующие Xpath запросы при SHELL

  • акроним: sel.xpath("//*[@id='recorddetails']/div/div[1]/h1").extract()
  • Краткое описание: sel.xpath("//*[@id='recorddetails']/div/div[1]/h2")
  • длинное описание: sel.xpath("//*[@id='recorddetails']/div/div[4]/div[2]/div[1]/p/text()").extract()

Но оболочка дает никакого результата [] для этих различных запросов XPath, в то время как они, кажется, не правильно написано (не ошибка синтаксиса) и достаточно точным.

Как я могу узнать правильный селектор с соответствующим Xpath, чтобы получить эту информацию?

ответ

1

глядя на Firebug вкладке чистый, фильтр по запросу XHR, он, кажется, что данные вы после это в последнем вызове AJAX для:

$ scrapy shell "http://cordis.europa.eu/projects/index.cfm?fuseaction=app.csa&action=read&xslt-template=projects/xsl/projectdet_en.xslt&rcn=95607" 
.... 
>>> sel.xpath("//div[@class='projttl']/h1/text()").extract() 
[u'PROTECTRAIL'] 

также, лучше сделать себя знакомы с синтаксисом XPath вместо использования те автоматические инструменты xpath

+0

Спасибо за помощь! Но как мне перейти от исходного URL-адреса к одному вызову AJAX? – user3301871

+0

у вас установлен firebug? его расширение Firefox, лучше, чем хром IMO, как сказано в ответе, когда он открыт, перейдите на вкладку Net и отфильтруйте XHR, вы увидите там звонок –

+0

, мне просто пришлось перезагрузить страницу, чтобы см., где идет вызов AJAX. Наверное, я заменил весь исходный URL-адрес этими, прежде чем кормить их пауком. Спасибо за вашу помощь! – user3301871

Смежные вопросы