Scrapy: захват элементов одного уровня в регулярном выражении - PullRequest
0 голосов
/ 30 июня 2018

Я использую Scrapy, чтобы вычищать темы эссе колледжа с сайтов колледжа. Я знаю, как сопоставить ключевое слово с помощью регулярного выражения, но информация, которая мне действительно нужна, - это другие элементы в том же элементе div, что и соответствие. Функция Response.css (...). Re (...) в Scrapy возвращает строку. Есть ли способ перейти к родительскому div совпадения с регулярным выражением?

Пример: https://admissions.utexas.edu/apply/freshman-admission#fndtn-freshman-admission-essay-topics. На приведенной выше странице я могу сопоставить темы эссе h1, используя: response.css ("* :: text"). Re ("Темы эссе"). Тем не менее, я не могу найти способ собрать 2 актуальные темы эссе в одном разделе в разделе A и разделе N.

1 Ответ

0 голосов
/ 30 июня 2018

Это не правильный способ сделать это. Вы должны использовать что-то вроде ниже

response.xpath("//div[@id='freshman-admission-essay-topics']//h5//text()").extract()

Если вы просто хотите использовать css, вы можете использовать

In [7]: response.css("#freshman-admission-essay-topics h5::text, #freshman-admission-essay-topics h5 span::text").extract()
Out[7]: ['Topic A \xa0\xa0', 'Topic N']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...