Нет простого решения для этого. Если данные доступны публично, их можно удалить. Единственное, что вы можете сделать, это усложнить жизнь скребку, сделав каждую запись немного уникальной, добавив / изменив HTML, не затрагивая макет. Это может затруднить сбор данных с использованием регулярных выражений, но это все еще не является реальным решением, и я бы сказал, что любой, кто достаточно решителен, найдет способ с этим справиться.
Я хотел бы предложить вашему клиенту, что это недостижимая задача, и приступить к выполнению важных частей вашей работы.
Если структура данных одинакова в каждой таблице, я бы сделал:
Select *, 'Ca' Source From CaDataTable
union all
Select *, 'Ny' Source From NyDataTable
union all
Select *, 'Wa' Source From WaDataTable
Фактически не синхронизируя две версии друг с другом, вы можете только строить предположения ....
Я надеюсь, что версия 1 (BatchReader) будет быстрее, так как вы получаете только одно обращение к базе данных. Версия 2 требует трех различных циклов приема-передачи - по одному на каждый выполняемый запрос.
Но опять же: вы можете только действительно сказать, измеряете ли вы.
Марк
О, PS: из Конечно, в реальной жизни это также поможет ограничить количество возвращаемых столбцов, например, не используйте SELECT *
, а вместо этого используйте SELECT (список полей)
и сохраните этот список поля как можно короче.