это хорошая отправная точка:
In [18]: for a in response.css('.extraUserInfo'):
...: print(a.css('*::text').extract())
...: print('\n\n\n')
...:
['\n', '\n', '\n', '\n'] # <--this (and other outputs like this) is because there is an extra `extraUserInfo` class block above the desired info block if the user has a user group picture/avatar below their username
['\n', '\n', 'Joined:', '\n', 'Mar 24, 2013', '\n', '\n', '\n', 'Messages:', '\n', '6,747', '\n', '\n']
['\n', '\n', '\n', '\n']
['\n', '\n', 'Joined:', '\n', 'Mar 24, 2013', '\n', '\n', '\n', 'Messages:', '\n', '6,747', '\n', '\n']
['\n', '\n', 'Joined:', '\n', 'Apr 14, 2013', '\n', '\n', '\n', 'Messages:', '\n', '580', '\n', '\n', '\n', 'Location:', '\n', '\n', 'Fort Pierce, FL', '\n', '\n', '\n']
['\n', '\n', 'Joined:', '\n', 'Oct 20, 2012', '\n', '\n', '\n', 'Messages:', '\n', '2,476', '\n', '\n', '\n', 'Location:', '\n', '\n', 'Philadelphia, PA', '\n', '\n', '\n']
['\n', '\n', 'Joined:', '\n', 'Dec 11, 2012', '\n', '\n', '\n', 'Messages:', '\n', '2,938', '\n', '\n', '\n', 'Location:', '\n', '\n', 'Colorado', '\n', '\n', '\n']
['\n', '\n', 'Joined:', '\n', 'Sep 30, 2016', '\n', '\n', '\n', 'Messages:', '\n', '833', '\n', '\n', '\n', 'Location:', '\n', '\n', 'Indiana', '\n', '\n', '\n']
...
Есть много способов приблизиться к этому.Немного повозившись, вы получите данные, отформатированные по своему вкусу.Приведенный выше подход является лишь хорошей отправной точкой, потому что есть много строк с только списками символов новой строки в качестве выходных данных, потому что (кажется), что пользовательские информационные блоки, где у пользователя есть изображение группы пользователей (например, tesla of arizona), затем *Класс 1004 * также используется для группировки этого блока html.Будут лучшие способы сгруппировать это ...
В основном response.css ('. ExtraUserInfo') будет агрегировать все блоки с классом extraUserInfo
, который выглядит как блоки, содержащие информацию о пользователе, которую вы ищете.за.Оттуда извлеките весь нижележащий текст с помощью псевдо-селектора ::text
и выполните синтаксический анализ массивов.
Определенно, есть лучший способ приблизиться к этому, если вы внимательно посмотрите на структуру html и извлекаете ее таким образом, чтобыпосле этого у вас остается меньше работы по обработке, но это должно привести вас на правильный путь.Селекторы CSS или документация xpath должны быть очень полезны.