Я хочу получить контент игрока и судьи с этого сайта и сохранить его в БД. Сначала, когда я просматривал его, все игроки и судьи были в response.css («div.prelims p.indent :: text»), и я мог использовать регулярные выражения, чтобы анализировать игроков с игроками и судей. , Нет проблем.
Тогда я более внимательно посмотрел на остальную часть сайта, только чтобы убедиться, что они НЕ следуют этой структуре последовательно. Вот пример:
<div class="prelims">
<p class="indent">Text about players.</p>
</div>
<div class="num" id="p1">
<span class="num">1</span>
<p class="indent">Text about players.</p>
</div>
<div class="num" id="p2">
<span class="num">2</span>
<p class="indent">Text about players.</p>
</div>
<div class="num" id="p3">
<span class="num">3</span>
<p class="indent">Text about players.</p>
</div>
<div class="num" id="p4">
<span class="num">4</span>
<p class="indent">Text about players.</p>
</div>
<div class="num" id="p5">
<span class="num">5</span>
<p class="indent">Text about referee.</p>
</div>
<div class="num" id="p6">
Мало того, что на этой странице есть эти 'num' и 'span', которых не было на другой странице, но и мое регулярное выражение, которое отлично работало на тестовой странице, разрывается на первом p class = indent здесь.
Каковы некоторые общие принципы дизайна пауков, которые могут сделать моего паука более устойчивым к этой изменчивости и при этом иметь возможность получать результаты в нужных таблицах в моей БД? Я использую DjangoItem и с нетерпением ждал плавного конвейера в мою базу данных, но теперь мне, возможно, придется изменить эти данные, чтобы даже привести их в нужную форму для вставки. Ваша мудрость, проницательность и опыт очень ценятся.