#php #web-scraping
#php #очистка веб-страниц
Вопрос:
На сайте загрузки я хочу очистить все URL-адреса для зеркальных сайтов. Я использую PHP.
Например, на этой странице:
http://drivers.softpedia.com/progDownload/Gigabyte-GA-P55A-UD3-rev-10-Intel-SATA-RAID-Preinstall-Driver-9501037-Download-99091.html
Я хочу извлечь следующие URL-адреса:
http://drivers.softpedia.com/dyn-postdownload.php?p=99091amp;t=0amp;i=1
http://drivers.softpedia.com/dyn-postdownload.php?p=99091amp;t=0amp;i=2
Комментарии:
1. Wut? Где в приведенной выше ссылке указаны эти две зеркальные ссылки? Пожалуйста, уточните.
2. @Pekka Я переписал ее, просто ожидая одобрения редактирования. Зеркальные URL-адреса находятся на первом URL.
3. И на этом сайте есть фантастически семантический HTML, который действительно упрощает эту работу… [/сарказм]
Ответ №1:
Попробуйте с:
(http://drivers.softpedia.com/dyn-postdownload.php?p=d amp;t=d amp;i=d )
Комментарии:
1. @Toman ну, некоторые из этих экранирований предназначены только для
/
того, чтобы заключать регулярное выражение. Использование альтернативного символа, такого как|
или%
, часто делает его немного более читаемым:preg_match_all("%http://drivers.softpedia.com/dyn-postdownload.php?p=d amp;t=d amp;i=d %", $buffer, $matches);
Ответ №2:
Неясно, откуда вы взяли параметры «t» и «i» из исходного URL-адреса, он содержит только идентификатор (p). Для извлечения этой последней группы цифр должно хватить приведенного ниже.
%(d ).html$%