История строки User-Agent в браузерах. История user-agent в браузерах

История китайской философии в наше время стала самым популярным курсом в Гарварде. Чем же она так занимательна? Давайте разберём наиболее интересные советы о том, как стать лучше, согласно Конфуцию и другим выдающимся мыслителям и философам Китая.

Люди часто удивляются, узнав, что Конфуций, Мэн-цзы, Лао-цзы и другие классические китайские философы не были жёсткими традиционалистами, которые учили, что наше высшее благо исходит от ограничений социальных ролей. Не были они и безмятежными мудрецами, проповедующими гармоничное сосуществование с миром природы. Скорее, они относились к ярким и радикальным мыслителям, которые подрывали условности своего общества. Они стремились сделать мир лучше, расширяя границы человеческих возможностей.

Середина первого тысячелетия до нашей эры была такой же бурной, как и наши дни относительно споров о том, как жить, как сохранить нравственность и как построить лучшее общество. В отличие от западных философов, которые известны нам лучше, китайские мыслители задавались не столь крупными вопросами. Их философию можно назвать высоко прагматичной, основанной на вопросах, которые казались малозначительными, например: «Как проходит ваша повседневная жизнь?» Эти мыслители подчёркивали, что великие перемены случаются лишь тогда, когда мы начинаем с приземлённого и выполнимого. Их учения показывают, что многие наши самые фундаментальные допущения о том, как мы должны жить, на самом деле вводят нас в заблуждения.

Итак, какими же идеями мы дорожим, и какие альтернативы вместо них предложили бы китайские философы?

Наши мыслители скептически относились к существованию истинного «Я». Особенно к тому, которое вы можете обнаружить, заглянув в себя.

Существует такой популярный постулат: важно заглянуть в себя, чтобы понять и осознать свою истинную сущность. Наши мыслители скептически отнеслись бы к теории о существовании истинного «Я». Они понимали, что мы многогранны и развиваемся по направлению к внешнему миру, а не вовнутрь. Человеческая индивидуальность формируется через взаимодействие с другими людьми, через реакцию на вещи и события, через род занятий. Вы ведь не ведёте себя одним и тем же образом с матерью, коллегой, стоматологом и с близким другом. Каждый из нас – сложное создание, которое постоянно сталкивается с другими сложными существами. Каждая встреча обрисовывает различные стороны. Мы состоим из моделей поведения и эмоциональных привычек, которые сформировались с течением времени. А это значит, что в нас заложены многочисленные возможности того, кем мы можем стать.

Быть неаутентичным

Мы есть не только то, что мы о себе думаем.

Как только мы обнаруживаем свою сущность, мы должны принять себя и быть верными самому себе. Но великий китайский мыслитель Конфуций, который родился в шестом веке до нашей эры, размышлял иначе. Он бы сказал, что проблема с аутентичностью в том, что это не освобождение, как мы полагаем. Как думаете, кто это «истинное Я», которое вы в себе обнаруживаете? Это ваш образ в конкретный момент времени. Если вы останетесь ему верны, позволите этому образу стать вашим ориентиром, то он сдержит и ограничит ваш рост, который наступит, когда вы признаете, что постоянно меняетесь.

Мы преуспеваем, когда признаём свою сложность и учимся с ней работать через самосовершенствование. Рост начинается, например, когда приходит понимание, что вы не забияка только потому, что склонны думать о себе как о человеке вспыльчивом, или застенчивы, потому что считаете себя интровертом. Большинство ярлыков – это модели поведения, которые у нас сформировались и поддаются разрушению. Мы не просто то, что мы о себе думаем. Мы всегда можем становиться лучшей версией самого себя.

Притворяйтесь (совершайте ритуалы)

Когда вы улыбаетесь, словно не сердитесь, или прикусываете язык, чтобы не наброситься, вы притворяетесь – ведёте себя взрослее.

Противоположная сторона нашего почитания аутентичности – это ритуалистические способы поведения, которые называют «притворством». Не лучше ли позволить выступить «настоящему Я»?

Но Конфуций учит, что определённые ритуалы – когда мы ведём себя «как будто» – помогают человеку трансформироваться, поскольку ломают модели поведения, в которые он угодил. Когда вы улыбаетесь, как будто не злитесь, или прикусываете язык, чтобы не наброситься, вы притворяетесь. Эти «как будто» создают крошечный разрыв от реальности, поэтому они так ценны. Мы действуем «как будто» мы другие и наши чувства становятся более зрелыми. Поступая так, мы превращаемся в кого-то более доброго и щедрого, вместо того, чтобы выражать свои истинные, но разрушительные чувства. Мы делаем это снова и снова, такие действия становятся ритуалами, позволяющими поведению брать верх над чувствами, а не наоборот. С течением времени мы изменяемся, становимся лучше.

Увидьте непостоянство мира

Любые окольные пути – случайные разговоры, впечатления, общение – питают жизнь.

Часто рассматривая себя как стабильную личность, человек видит и мир постоянным. Конечно, мы понимаем, что жизнь может меняться, но в то же время склонны исходить из предположения, что в целом мир предсказуем и нужно определить как нам в него вписаться. Если мы считаем себя сильными в математике, то продолжаем следовать этому академическому пути; если мы считаем себя непредсказуемыми, то ищем спутника жизни, который присоединится к нашим приключениям.

Мэн-цзы, представитель конфуцианской традиции, живший в конце 4 века до нашей эры, видел мир фрагментарным и непостоянным. Он бы посоветовал работать с изменениями окольными путями – использовать случайные разговоры, впечатления и общение для расширения жизни. Подход Мэн-цзы означает не строить планы на жизнь, а настраивать траекторию в движении.

Прекратите принимать решения

Когда вы обдумываете большие перемены, легче принять решение, если сначала испытать новые впечатления.

Знаете, что плохого в жизненном плане? Когда вы планируете свою жизнь, то принимаете решения для будущей личности, полагаясь на индивидуальность, которой вы являетесь сегодня.

Принимая важные решения, Мэн-цзы посоветовал бы подойти к ним через мелкие и выполнимые шаги. Когда вы задумались об изменении карьеры, утвердиться в решении или отбросить его будет легче, если сначала получить новый опыт в малом масштабе. Обратите внимание на свою реакцию от полученных впечатлений, именно она поведёт вас в новом направлении.

Будьте слабыми

Замечайте в мире взаимосвязанность вместо разделённости и различности, тогда вы сможете гармонировать с другими.

Ещё одна распространённая гипотеза: побеждает сильнейший. Нам твердят, что нужно быть сильными и уверенными в том, чего хотим. Но Лао-цзы в трактате Дао Дэ Цзин выступает за силу слабости над очевидной силой. Часто люди думают, что это означает необходимость в гармонизации с природой. Некоторые студенты, впервые столкнувшись с учениями Лао-цзы, отправляются на прогулки в лес, чтобы слиться с величием природного мира. Но пассивность это не совсем то, что он подразумевал. Философ говорил, что мы должны замечать, как всё в мире взаимосвязано, а не разделено и различно. Это понимание помогает гармонировать с другими.

Сонастройка позволяет осуществлять разного рода влияние. Не применяя открытую силу, вы видите, как искусно изменить ситуацию, так что люди и не заметят в вас доминанта.

Не заигрывайтесь в свои сильные стороны

Проживите свою жизнь как серию прорывов, потому что это изменяет вас с течением времени.

Нас призывают с юных лет раскрыть и отточить свои умения и таланты. Если вы спортивны, то вступаете в футбольную команду; если постоянно зарываетесь в книги, то изучаете литературу. Становясь старше, человек развивает подобные природные наклонности, пока они не становятся частью его личности. Но если увлечься таким образом мышления, можно перестать делать всё остальное.

Наши философы поощрили бы вас не сосредотачиваться на том, что вы о себе думаете, а ломать предубеждения. Если вы считаете себя неуклюжим, займитесь танцами. Если вы не сильны в языках, запишитесь на уроки французского. Цель заключается не в том, чтобы стать в новой сфере лучше всех, а в том, чтобы прожить жизнь как серию прорывов, потому что это то, что изменяет нас со временем.

Отбросить осознанность

Принципы осознанности в широком понимании противоположны её истинному назначению.

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

Широко принятые принципы осознанности – в том числе, заглянуть в себя и принять обнаруженное с беспристрастием и несуждением – это противоположность того, чем осознанность должна была стать. Буддизм, в конце концов, придерживается учения о несуществовании индивидуального «Я». Конфуцианское самосовершенствование отличается. Речь идёт о взаимодействии с миром и взращивании себя через каждое столкновение и взаимодействие. Оно исповедует активный, а не пассивный способ самовоспитания, чтобы стать лучшей версией самого себя.

Переосмыслите традиционность и современность

Современное отношение ко всему предполагает, что вы высвободились от репрессивного традиционного мира и живёте своей жизнью, сами делая выбор. Но если вы определяете традиционный мир как тот, в котором люди пассивно принимают всё как есть и пытаются вписаться в стабильный, предварительно налаженный порядок, значит вы традиционалист. Знания, которых мы придерживаемся и считаем истинными, ограничивают наши возможности.

Очень часто в своем кабинете психотерапевта я встречаюсь с женщинами, которых мучают психологические травмы. Как это проявляется в реальной жизни? Они не верят в себя, жалуются на то, что у них не складываются близкие отношения с другими людьми, их обуревают застарелые обиды. Это мешает им нормально жить и работать.

Причем внешне эти женщины кажутся вполне успешными. Среди них яркие красавицы и умницы, владелицы собственного бизнеса, талантливые студентки, замужние и разведенные дамы. Они создают впечатление очень уверенных в себе женщин. Что скрывается за мнимой уверенностью? Неустойчивое «Я», глубокое отчаяние, слезы в подушку, стыд собственного тела и мыслей, страх одиночества, обида на несправедливость жизни, нереализованность в той или иной сфере. А на людях эти женщины одевают маску уверенности, твердости и непоколебимости.

Быть в маске - это значит притворяться другой, жить, чтобы оправдывать ожидания других. И женщина вынуждена тратить для этого массу своей энергии.

Я имею в виду и каждодневный многочасовой уход за лицом и телом, походы по магазинам, уход за уже купленными вещами. И макияж, как то, без чего иная женщина мусор не вынесет из квартиры. И очень насыщенный аромат духов, перебивающий естественный запах тела. И операции по улучшению собственной, кажущейся несовершенной внешностью. Несколько высших образований, научная деятельность, лишь для желания еще раз подтвердить свою статусность. Замужество, для мамы и родственников. Дети, для того чтобы не сказали, что не состоялась по женской части. Можно еще перечислять.

Речь сейчас идет о мнимых целях, которые женщине вовсе не нужны, но она с упрямством ослика их добивается. В итоге у таких клиенток наблюдается опустошенность, депрессивное состояние, отсутствие жизненных сил на действительно важные дела, разочарование в жизни и себе.

Тайный смысл маски

Зачем женщине маска? Это же дополнительная психическая нагрузка! Сему явлению есть глубинные причины. Многие из этих женщин получили эмоциональную травму еще в детстве. В основном из-за нарушения отношений с родителями.

К сожалению, мало кто из нас может похвастаться безоблачным детством. Но есть некоторые моменты, которые сопровождают нас потом всю сознательную жизнь. Мы даже можем не помнить о них – воспоминания подавлены. Но они как 5 колонна только и ждут, чтобы вступить по первому зову в бой. Для этого достаточно лишь попасть в похожую ситуацию или увидеть человека чем-то отдаленно напоминающего участника травмирующей ситуации. Отслеживать себя в такой момент невозможно. И женщина снова и снова ведет себя как по накатанной. А маска выполняет защитную функцию для психики, спасая внутренний хрупкий мир от еще больших разрушений.

Самым опасным с точки разрушения детской психики является непринятие со стороны родителей – попросту говоря, нелюбовь, которая часто остается непроявленной. Кроме этого: наблюдение первосцены (полового акта), сцен насилия, асоциальные проявления родителей, избиение и жесткость по отношению к ребенку, смерть близких родственников, унижение и переживание чувства стыда. Развод родителей и когда каждый из них перетягивает ребенка на свою сторону. Рождение младших брата или сестры, особенно в период с 4 до 7 лет. Также природные катаклизмы – наводнение, пожар, ураган, а в нынешних условиях еще и война.

Бывает так, что ничего подобного в жизни женщины не было, а вот каждодневное давление со стороны матери и отца чувствует до сих пор. То есть небольшие, но регулярные травмы ничуть не менее губительны, чем яркие и запоминающиеся.

Чем опасны эмоциональные травмы?

В нашем бессознательном нет ни прошлого, ни будущего, все происходит в настоящем времени. Произошла травма у девочки в 5-летнем возрасте. И вот уже взрослая женщина в 35 ведет себя в непонятных ситуациях также как тот испуганный, шокированный, униженный ребенок. Хотя в своем арсенале имеет гораздо более широкий спектр действий. Она словно бы совсем забыла о своем новом опыте.

Представьте себе, что человек получил серьезные повреждения позвоночника. Сначала его ждет лечение. В дальнейшем его ждет длительная реабилитация, и то не факт, что он сможет вернуться к прежней функциональности. С психологическими травмами точно так же. Они не столь заметны на первый взгляд, и при этом очень болезненны. След остается на всю жизнь.

Расскажу вам историю, об этом не принято рассказывать в обществе. Одна моя клиентка подверглась насилию со стороны своего деда. Всего, что произошло, она не помнит, но некоторые детали намертво врезались в память и постоянно её травмируют. Этот горький опыт сильно отразился на ее взаимоотношениях с мужчинами, они не клеятся. Ведь эта эмоциональная травма постоянно дает о себе знать. Внутренне она ждет насилия со стороны мужчин или насилует их сама. Неважно как - своей навязчивостью или, наоборот, холодностью. Такое поведение совершенно не способствует сближению.

Но посмотрев на нее со стороны, вы увидите шуструю, яркую и талантливую женщину. Вот она сила маски!

Жертвоприношение

Мне близка такая метафора травмы, когда её сравнивают с храмом. Храм травмы. Снова и снова происходит в жизни нечто, когда женщина идет в свой нерукотворный храм и сама возлагает к алтарю все свои достижения и весь свой опыт. В моменты отчаяния она склонна обесценивать себя и все, чего достигла. И начинает дальнейшую жизнь словно сначала. Поэтому так сложно выстроить отношения с людьми, карьеру и достичь успеха. Есть ощущение, что опыт, полученный ею бесполезен и надо снова обучаться уже известным вещам, снова и снова наступать на те же грабли.

Помните у Пушкина: «И днем, и ночью кот ученый все ходит по цепи кругом…»? Если у вас есть ощущение, что вы подобны этому коту, и неудачные события, происходящие сейчас, уже были вашей жизни и не раз, то вы находитесь в плену травмы, который бесконечен. Для того чтобы выйти из него необходимо приложить невероятно много усилий, и зачастую самостоятельных усилий бывает недостаточно. Но одно то, что вы обратили внимание на цепь методично повторяющихся ситуаций, заметили это, дает надежду на исцеление.

В одной статье невозможно раскрыть обширную тему эмоциональных травм. Я работаю над публикациями в этом ключе и обязательно расскажу вам, что можно самостоятельно предпринять, чтобы справиться с травмами.

В начале был NCSA Mosaic, и Mosaic называл себя NCSA_Mosaic/2.0 (Windows 3.1), и Mosaic показывал картинки с текстом, и счастье пришло.

И потом пришел новый веб-браузер, известный как «Mozilla», что сокращением было для «Mosaic Killer»(«Убийца Мозаики»), но Mosaic не понравилось это, так что имя было изменено на Netscape и Netscape называл себя Mozilla/1.0 (Win3.1), и не было больше счастья. И Netscape поддерживал фреймы и фреймы стали популярны в народе, но Mosaic не поддерживал фреймы, и поэтому пришло время вынюхивания user agent-ов, и для Mozilla вебмастеры посылали фреймы, но для других браузеров не посылали.

И Netscape сказал, давайте посмеемся над Microsoft и ссылался на Windows как на «плохо отлаженные драйверы устройств», и Microsoft был зол. И сделал Microsoft свой собственный веб-браузер, который они назвали Internet Explorer, надеясь, что это будет «убийца Netscape». И Internet Explorer поддерживал фреймы, но не был Mozilla, поэтому и не получал фреймы. А Microsoft рос нетерпеливо и не желал ждать веб-мастеров, пока они изучат IE и начнут слать ему фреймы, и поэтому Internet Explorer заявил, что он «Mozilla-совместим» и стал олицетворением Netscape, и называл себя Mozilla/1.22 (compatible; MSIE 2.0; Windows 95), и Internet Explorer получил фреймы, и все в Microsoft были счастливы, но вебмастера были сбиты с толку.

И Microsoft продавал IE с Windows, и сделал его лучше, чем Netscape, и первая война браузеров бушевала на земле. И вот был убит Netscape, и было радости много в стане Microsoft. Но Netscape был возрожден как Mozilla и Mozilla Gecko создан, и назвал он себя Mozilla/5.0 (compatible; Windows NT 5.0; EN-US; RV: 1.1) Gecko/20020826, и Gecko было движком рендеринга, и Gecko была хорош. И Mozilla стал Firefox, и назвал себя Mozilla/5.0 (compatible; Windows NT 5.1; SV-SE; RV: 1.7.5) Gecko/20041108 Firefox/1.0 и Firefox был очень хорош. И Gecko начал размножаться, и другие браузеры родились, которые использовали его код, и они назвали себя Mozilla/5.0 (compatible; PPC Mac OS X Mach-O; EN-US; RV: 1.7.2) Gecko/20040825 Camino / 0.8.1 и Mozilla/5.0 (compatible; Windows NT 5.1; DE; RV: 1.8.1.8) Gecko/20071008 SeaMonkey/1.0, каждый притворялся Mozilla, и все из них были созданы на основе Gecko.

И Gecko был хорош, а IE нет, и вынюхивание было возрождено, и Gecko получал хороший код, а другие браузеры нет. И последователи Linux были очень опечалены, потому что они создали Konqueror, движок которого был KHTML, который, они считали, был хорош, как Gecko, но он не был Gecko, и поэтому не получал хороших страниц, и так Konquerer начал притворяться чтобы быть «как Gecko», чтобы получать хорошие страницы, и называл себя Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD) (KHTML, like Gecko) и путаница усилилась.

Тогда пришла Opera и сказала: «Конечно, мы должны позволить нашим пользователям решать, за какой браузер мы должны выдавать себя» и Opera создала пункт меню, и Opera называла себя Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.51, или Mozilla/5.0 (Windows NT 6.0; U; EN; RV: 1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.51, или Opera/9.51 (Windows NT 5.1; EN) в зависимости от варианта, выбранного пользователем.

И Apple создали Safari, и использовал он KHTML, но много функций было добавлено, и раздвоили проект, и назвали его WebKit, но хотел он получать страницы, написанные для KHTML, и Safari и так называл себя Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5, и стало еще хуже.

А Microsoft сильно боялся Firefox, и Internet Explorer вернулся, и назвал себя Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0), и он рендерил хороший код, но только тогда, когда веб-мастера приказывали ему сделать это.

А потом создали Google Chrome и Chrome использовал WebKit, и был он как Safari, и хотел страниц, созданных для Safari, и поэтому сделал вид, что он и есть Safari. И таким образом Chrome использовал WebKit, и притворился, что Safari, и WebKit притворился, что он KHTML, и KHTML притворился Gecko, а все браузеры притворялись Mozilla, и Chrome называл себя Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13 и user-agent стал полным беспорядком, рядом не лежавшим с удобством, и каждый притворялся другим, и путаница изобиловала. И хаос воцарился на земле.

Допустим, нам нужно получить данные с сайта, сбор которых вручную нецелесообразен или невозможен из-за объёма. В таком случае мы можем автоматизировать процесс, используя инструменты, описанные далее.

Библиотека requests

Python-библиотека для выполнения запросов к серверу и обработки ответов. Фундамент скрипта для парсинга и наше основное оружие. Пользуясь данной библиотекой мы получаем содержимое страницы в виде html для дальнейшего парсинга.

import requests response = requests . get ("https://ya.ru" ) # get-запрос print (response . text ) # вывод содержимого страницы payload = { "key1" : "value1" , "key2" : "value2" } response = requests . get ("http://httpbin.org/get" , params = payload ) # запрос с параметрами headers = { "user-agent" : "my-app/0.0.1" } response = requests . get (url , headers = headers ) # запрос с определенными html заголовками

API

Application programming interface - программный интерфейс приложения, предоставляемый владельцем веб-приложения для других разработчиков. Отсутствие API, способного удовлетворить наши нужды - первое в чем стоит убедиться прежде чем бросаться анализировать исходный код страницы и писать для нее парсер. Множество популярных сайтов имеет собственное api и документацию, которая объясняет как им пользоваться. Мы можем использовать api таким образом - формируем http-запрос согласно документации, и получаем ответ при помощи requests.

BS4

Beautifulsoup4 - это библиотека для парсинга html и xml документов. Позволяет получить доступ напрямую к содержимому любых тегов в html.

from bs4 import BeautifulSoup soup = BeautifulSoup (raw_html , "html.parser" ) print (soup . find ("p" , class_ = "some-class" ) . text ) # вывод содержимого тэга "p" классом "some-class"

Selenium Web Driver

Данные на сайте могут генерироваться динамически при помощи javascript. В таком случае спарсить эти данные силами requests+bs4 не удастся. Дело в том, что bs4 парсит исходный код страницы, не исполняя js. Для исполнения js кода и получения страницы, идентичной той, которую мы видим в браузере, можно использовать selenium web driver - это набор драйверов для различных браузеров, снабжающийся библиотеками для работы с этими драйверами.

А что делать, если там авторизация?

session = requests.Session() data = {"login_username":"login", "login_password":"password"} url = "http://site.com/login.php" response = session.post(url, data=data)

А что, если сайт банит за много запросов?

  • Установить задержку между запросами:

response = requests.get(url, timeout=(10, 0.01)) # таймаут на соединения, таймаут на чтение (в секундах)

  • Притвориться браузером, используя selenium web driver или передав содержимое заголовка user-agent, формируя запрос:

user_agent = ("Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:50.0) " "Gecko/20100101 Firefox/50.0") request = requests.get(url, headers={"User-Agent":user_agent})

  • Использовать прокси: