Я настроил запрос скручивания, который корректно работает на нескольких сайтах, большинство из которых используют фреймы, и возвращает тег noframes с соответствующим сообщением, если фреймы не поддерживаются используемым браузером bing, все возвращают полную страницунаборов фреймов, которые я просматриваю, используя Domdocument.
Один сайт, однако, будет возвращать только страницу с указанием «вам понадобится браузер, который поддерживает фреймы».Я передаю CURLOPT_USERAGENT, Mozilla / 5.0 (Windows; U; Windows NT 6.1; en-GB; rv: 1.9.2.13) Gecko / 20101203 Firefox / 3.6.13, я пробовал множество определений пользовательских агентов и читал ипробовал другие варианты скручивания, но безуспешно.
Единственное различие, которое я вижу между сайтами, которые работают, и тем, которое не работает, заключается в том, что он объявляет тип документа:! DOCTYPE html PUBLIC "- // W3C // DTD XHTML 1.0 Frameset // EN "" http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"
, тогда как работающие сайты корректно объявляют тип документа:! DOCTYPE html PUBLIC "- // W3C // DTD XHTML 1.0 Transitional // EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
URL-адрес, о котором идет речь: http://www.sainsburys.co.uk/groceries/index.jsp
Конечно, я могу получить нужный набор фреймов, используя прямые URL-адреса для ссылок внутри набора фреймов, но я бы предпочел начать с точки входа индексного файла, а не жестко кодировать ссылки на страницы.что мои изменения со временем.
Любой совет или скрипт, который работает, будет принят с благодарностью.
Кстати: использование собираемой информации находится в пределах допустимого использования.