Учтите, что объекты, которые вы хотите очистить, вероятно, не активны (например, они не реагируют на нажатия или нажатия клавиш).
Даже если они это сделают, они, вероятно, не будут обрабатывать мета-ключи, такие как Ctrl или Shift.
Так что вы можете сделать, это построить систему так же, как прокси-сервер, переписав внутренние URL-адрес (это вы должны делать, независимо), кроме что вы также инъекционные Javascript код реагировать, скажем, нажмите ,
Тогда вам не нужно будет не IFRAME, а просто перейти к www.your-scraper.com
, запросить www.site-to-scrape.com
в форме, получить присваивается случайный dab3b19f
и попадаю на dab3b19f.your-scraper.com
- и увидите версию www.site-to-scrape.com
где все (текст?) Объекты среагировать для Ctrl-Click.
Пользователь должен затем иметь возможность перемещаться по сайту в обычном режиме, за исключением того, что удерживание, например, клавиша Ctrl при нажатии не будет передавать клик на объект с кликом, а затем обработчику, который затем может идентифицировать цель события и вычислить его путь к CSS, а затем отобразить меню скребков в фиксированном DIV, добавленном к DOM по требованию, и удален сверху близко.
Это означает, что вам нужно будет обнаружить и захватить несколько возможных библиотек Javascript, которые могут загружаться на сайте. Если дело будет продолжаться, возможно, вам также понадобится очистить некоторый код скремблирования (например, сайт может проверить целостность DOM или попытаться переписать обработчики в состояния по умолчанию).
В то же время, вы можете также перехватывать и записывать нормальных кликов для того, чтобы иметь возможность дублировать, до точки (это зависит от того, как динамического сайта, и как вы можете взаимодействовать с безголовым браузер). Это позволит вам автоматически переадресовать сайт, сменить страницы и т. Д., Чтобы достичь различных объектов. Затем вы в конечном итоге с серией селекторов и навигационных подсказок, которые могут быть использованы для извлечения данных из страниц можно перемещаться:
start
click #menu ul[2] li[1] span
click .right.sidebar[1] ul[1] li[5] input[type="checkbox"]
click .right.sidebar[1] ul[1] li[5] button
scrape(TICK) #prices div div[2] div div span p
scrape(PRIC) #prices div div[2] div div span div span[2] p
Сценарий выскабливание затем может быть изменен, чтобы добавить, скажем, петли. Это происходит позже.
Вы также получили бы что-то не слишком отличное от Selenium. На самом деле вы можете рассмотреть возможность использования turning Selenium to your purpose.
Спасибо alecxe, есть ли у вас какие-либо мысли по поводу этого, без установки пользователем расширения chrome? Что вы думаете о подходе iframe, о котором я говорил? Я надеялся, что + некоторые библиотеки инспектора элементов JavaScript, чтобы достичь чего-то похожего на то, что делает chrome инспектор. Конечно, не вся функциональность, просто визуальный выбор элемента и выбор селектора css/xpath. – Geo
@Geo, который может работать - это своего рода «мини-браузер» внутри браузера, который имеет дополнительные возможности для выбора и аннотирования элементов. Кстати, я нашел какую-то старую версию расширения и могу предоставить более подробную информацию, если это необходимо - она основана на библиотеке '' selectorgadget' (http://selectorgadget.com/) - вроде старой, но выглядит совершенно связанный с тем, над чем вы работаете. Может быть, есть лучшая/более новая альтернатива этому. – alecxe
уверен, что может быть интересно, спасибо! – Geo