Вы можете проделать большую работу или отследить, откуда поступают данные, и немного размыть источник, пока он не выдаст что-то более привлекательное.Здесь похоже, что данные загружаются из:
https://www.tripadvisor.com/AirlineTips
, что, как вы заметили, ужасно ужасно.
Точный звонок, который он сделал для меня, был:
https://www.tripadvisor.com/AirlineTips?d=8728949&inline=true
Который выплевывает:
<div class="page page1">
<div class="tip">
<div class="memberOverlayLink" id="UID_-SRC_635739734" onmouseover="requireCallIfReady('members/memberOverlay', 'initMemberOverlay', event, this, this.id, 'Reviews', 'user_name_photo');" data-anchorWidth="30">
<div class="circularAvWrap smallCircularAvWrap profile_UID_-SRC_635739734">
<img src="https://media-cdn.tripadvisor.com/media/photo-l/01/2e/70/85/avatar006.jpg" class="avatar" width="28" height="28"/>
</div>
</div> <div class="tipText">
<blockquote>“Value for Money”</blockquote>
<span class="ui_bubble_rating bubble_4" alt="4.0 of 5 bubbles"></span>
Santhoshpp, 2 days ago
<span class="pipe">|</span> <a href="/ShowUserReviews-g1-d8728949-r635739734-SpiceJet-World.html" onclick="ta.trackEventOnPage('Tab Content', 'read_review', 'Read Review');">Read review</a> </div> </div>
<div class="tip">
<div class="memberOverlayLink" id="UID_-SRC_635711432" onmouseover="requireCallIfReady('members/memberOverlay', 'initMemberOverlay', event, this, this.id, 'Reviews', 'user_name_photo');" data-anchorWidth="30">
<div class="circularAvWrap smallCircularAvWrap profile_UID_-SRC_635711432">
<img src="https://media-cdn.tripadvisor.com/media/photo-l/01/2e/70/99/avatar025.jpg" class="avatar" width="28" height="28"/>
</div>
</div> <div class="tipText">
Ммм, отвратительно.
Давайте попробуем изменить inline=false
по этому запросу ... https://www.tripadvisor.com/AirlineTips?d=8728949&inline=false
дает нам
script> new Asset.css('https://static.tacdn.com/css2/accommodations/room_tips_overlay-v22801712797b.css');</script>
<div id="TIPSOVERLAY" class="wrap">
<div class="title">
<span class="fl">
See travel tips for airlines </span>
</div>
<div class="content">
<div class="tip"><span class="tipBody">“Value for Money” (Santhoshpp) </span>
<div class="rsImg">
<span class="ui_bubble_rating bubble_4"></span>
<span class="dateAuthor">Nov 25, 2018</span>
</div>
</div>
<div class="tip"><span class="tipBody">“carry your own entertainment stuff and be ready if your flight gets delayed” (vbroams) </span>
<div class="rsImg">
<span class="ui_bubble_rating bubble_3"></span>
<span class="dateAuthor">Nov 25, 2018</span>
</div>
</div>
О, сексуальные ракушки, Бэтмен!Вот оноТеперь нам не нужно бороться с датами в Python или чем-то еще.
tl; dr
Не чистите суп, чистите источник.Под любым динамическим контентом есть API.