Мы проверяем, является ли конкретное значение строкой или нет, используя type(value)
.
output = [tuple([j for j in i if type(j)!=str]) for i in ListTuples]
print(output)
[(100,), (80,), (20,), (40,), (40,)]
Это трудно если не невозможный выполнить. Многие пауки/поисковые роботы "жулика" не идентифицируют себя через строку агента пользователя, таким образом, трудно определить их. Можно попытаться заблокировать их через их IP-адрес, но трудно не отставать от добавления новых IP-адресов к черному списку. Также возможно заблокировать законных пользователей, если IP-адреса используются, так как прокси заставляют многие различные клиенты появиться как единственный IP-адрес.
Проблема с использованием robots.txt в этой ситуации состоит в том, что паук может просто принять решение проигнорировать его.
Править: Ограничение уровня является возможностью, но оно переносит от некоторых из тех же проблем идентификации (и отслеживание) "хорошие" и "плохие" пользовательские АГЕНТЫ/ДЮЙМ/С. В системе мы записали, чтобы сделать некоторый внутренний просмотр страницы / подсчет сессии, мы устраняем сессии на основе уровня просмотра страницы, но мы также не волнуемся об устранении "хороших" пауков, так как мы не хотим их считаемый в данных также. Мы ничего не делаем о предотвращении никакого клиента от фактического просматривания страниц.
Один подход должен создать яму tar HTTP; встройте ссылку, которая только будет видима к автоматизированным поисковым роботам. Ссылка должна перейти к странице, наполненной случайным текстом и ссылками на себя (но с дополнительной информацией о странице: /tarpit/foo.html, /tarpit/bar.html, /tarpit/baz.html - но имеют сценарий в/tarpit/, обрабатывают все запросы с этими 200 результатами).
Для хранения хороших парней от ямы генерируйте 302 перенаправления к домашней странице, если агентом пользователя является Google или Yahoo.
Это не прекрасно, но это, по крайней мере, замедлит наивные.
Править: Как предложил Constantin, Вы могли отметить яму tar как запрещенную в robots.txt. Хорошие парни используют поисковые роботы, которые соблюдают этот протокол, останется вне ямы tar. Это, вероятно, избавилось бы от требования для генерации перенаправлений для известных хороших людей.
Если Вы хотите защитить себя от универсального поискового робота, используйте ловушку.
См., например, http://www.sqlite.org/cvstrac/honeypot. Хороший паук не откроет эту страницу, потому что robots.txt сайта запрещает его явно. Человек может открыть его, но, как предполагается, не нажимает на ссылку "i am a spider". Плохой паук, конечно, перейдет по обеим ссылкам и так предаст его истинные идентификационные данные.
Если поисковый робот создается специально для Вашего сайта, Вы можете (в теории), создают движущуюся ловушку.
robots.txt только работает, если паук соблюдает его. Можно создать HttpModule для отфильтровывания пауков, что Вы не хотите проверять свой сайт.
Необходимо сделать то, что делают хорошие брандмауэры, когда они обнаруживают злонамеренное использование - позволяют им продолжать идти, но не дают им ничто больше. Если Вы начинаете бросать 403, или 404 они будут знать, что что-то неправильно. Если Вы возвратите случайные данные, то они пойдут о своем бизнесе.
Для обнаружения злонамеренного использования, хотя, попытайтесь добавить ссылку прерывания на странице с результатами поиска (или страница, которую они используют в качестве Вашей карты сайта), и скройте его с CSS. Должен проверить, утверждают ли они, что были действительным ботом и пропустили их все же. Можно сохранить их IP для будущего использования и быстрого поиска ARIN WHOIS.