Я использовал scrapy для получения некоторых данных о книгах на amazon.com. Мне просто нужно имя, автор и цены на книгу. Я хочу сделать это по категориям, например, книги по информатике.Scrapy пропускает некоторые элементы html
рассмотрим фрагмент кода (некоторые амазонки страницы):
<div class="a-row">
::before
<div class="a-column a-span7">
<div class="a-row a-spacing-none">...</div>
<div class="a-row a-spacing-none">...</div>
<hr class="a-divider-normal s-result-divier">
<div class="a-row a-spacing-none">...</div>
<div class="a-row a-spacing-none">...</div>
<div class="a-row a-spacing-none">...</div>
</div>
<div class="a-column a-span5 a-span-last"></div>
::after
</div>
Таким образом, я пытался получить элементы DIV внутри сНу [@ класс = "а-а-столбец span7"]. Но возвращаются только первые два элемента div. Команда, которую я использовал, был:
>>> books = response.selector.xpath ('.//div[@class="a-fixed-left-grid-col a-col-right"]')
>>> abook = books[0].xpath('.//div[@class="a-row"]')
>>> prices = abook.xpath ('.//div[@class="a-column a-span7"]')
>>> len (prices.xpath('div'))
2
выше код выполняет следующие действия:
- Получить все элементы DIV класс содержит информацию о книге на конкретной странице
- Получить первую «книгу» и получить div, который содержит цены на книгу
- Получить div с классом 'a-column a-span7'
- Вот в чем проблема: я не понимаю, почему количество элементов div внутри div с класс «А-а-столбец span7»
Я пробовал разные способы, чтобы получить Дивы элементы после тега < ч>, но это кажется Scrapy остановки на тег < ч>. Я попытался использовал следующий код также и результат просто показывает два элемента:
>>> abook.xpath ('div')
[<Selector xpath='div' data=u'<div class="a-column a-span7"><div class'>, <Selector xpath='div' data=u'<div class="a-column a-span5 a-span-last'>]
Я провел некоторое время, и я не мог решить эту проблему. Я думаю, что это очень просто.
По этой ссылке: stackref. Есть некоторые пояснения по поводу использования тега < и> < hr>, но мне это непонятно.
Можете ли вы предоставить ссылку, откуда вы это очищаете? – Rahul
Да. Это ссылка: http://goo.gl/9XoOt6. Страница находится на португальском (Бразилия). – Romerito
Невозможно найти тег 'hr', который указан в вопросе. Есть только два div присутствия после 'class =" a-column a-span7 "' – Rahul