Сложные запросы с помощью Twitter API-оболочки Python

Возможны ли сложные запросы с использованием Twitter API? Например, в примере запросов, показанных на сайте разработчика, я могу сделать так, чтобы мой запрос был примерно таким:

("шоколад" И "кошка") ИЛИ ("супер ниндзя" И "призрак" И "человек", но НЕ "собака")

Запросы на сайте выглядят очень просто, и мне интересно, если вы можете иметь несколько одновременно, И, а также ИЛИ в запросе или это взаимоисключающие?

Я попытался поискать в поиске, но я мог найти только один пример запросов слова (бесполезно). Означает ли это, что я могу присоединиться к примерам документации для разработчиков с сайта и объединить их в один запрос следующим образом:

q = "шоколадная кошка-собака ИЛИ супер ниндзя-призрак-собака"

является ли приведенный выше запрос тем же результатом, что и первый оператор с AND/OR?

Я использую библиотеку TwitterSearch, но могу выполнять только такие запросы, как:

"шоколад" и "кот"

"шоколад" или "собака"

Я мог бы сделать следующее, но еще не проверял:

("шоколад" или "кошка") и "человек"

( стр. 22 документ библиотеки TwitterSearch).

Кроме того, библиотека учитывает НЕ, но я не могу сказать, могу ли я использовать оба И и ИЛИ, тогда НЕ. Это также на странице 22 в разделе "Исключая ключевые слова"

Это не достаточно сложно, на мой вкус, я открыт для любых других библиотек / оболочек, которые имеют более сложный поиск запросов, но я не уверен, что Twitter даже имеет такую ​​сложность в их API.

Спасибо, и любые ваши ссылки также будут высоко оценены.

1 ответ

Решение

Да, вы правы, вы можете комбинировать операторы запросов любым способом, который соответствует вашим критериям.

q="шоколадная кошка-собака ИЛИ супер ниндзя-призрак-собака"

Тем не менее, в этом вы специально удалите собаку в первом, но вы не в:

("шоколад" И "кошка") ИЛИ ("супер ниндзя" И "призрак" И "человек", но НЕ "собака")

Разве ты не хочешь иметь

q="шоколадный кот или супер ниндзя призрак-собака"

В любом случае, да, это отфильтрует твиты на основе предоставленных операторов.

Из вашего комментария:

Вы получаете именно то, что вы указываете.

Если мы сначала посмотрим на предложение "nap cat -dog", вы фильтруете все твиты, которые должны содержать nap и cat в одном и том же твите, за исключением собаки. Они также содержат любое другое слово, которое в вашем случае вы получаете завтрак, потому что у вас нет никаких ограничений для этого в фильтре "nap cat -dog".

Второй фильтр работает отдельно от первого, следовательно, оператора OR. Там снова вы говорите все твиты, которые содержат время и завтрак, но не собаку. Второй фильтр может содержать ворс и кошку.

Если вы хотите как-то связать их, вам понадобится:

q="сон кошка-собака-время-завтрак-завтрак или время завтрака - сон-кошка-собака"

Этот фильтр должен предотвращать наложение твитов, которые я предполагаю, что вы после. Правильный?

Другие вопросы по тегам