Как добавить очищенные данные веб-сайта в базу данных?

Я хочу хранить:

  1. наименование товара
  2. Categoty
  3. Подкатегория
  4. Цена
  5. Компания продукта.

В моей таблице названы products_data с именем filds как PID, product_name, категория, подкатегория, product_price и product_company.

Я использую curl_init() в php для первого URL-адреса веб-сайта, затем я хочу хранить данные о продуктах в моей таблице базы данных. Вот что я сделал до сих пор для этого:

 $sites[0] = 'http://www.babyoye.com/'; foreach ($sites as $site) { $ch = curl_init($site); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $html = curl_exec($ch); $title_start = '<div class="info">'; $parts = explode($title_start,$html); foreach($parts as $part){ $link = explode('<a href="/d/', $part); $link = explode('">', $link[1]); $url = 'http://www.babyoye.com/d/'.$link[0]; // now for the title we need to follow a similar process: $title = explode('<h2>', $part); $title = explode('</h2>', $title[1]); $title = strip_tags($title[0]); // INSERT DB CODE HERE eg $db_conn = mysql_connect('localhost', 'root', '') or die('error'); mysql_select_db('babyoye', $db_conn) or die(mysql_error()); $sql = "INSERT INTO products_data(PID, product_name) VALUES ('".$url."', '".$title."')" mysql_query($sql) or die(mysql_error()); } } 

Я немного путаюсь с частью базы данных, что как вставлять данные в таблицу. Любая помощь?

Solutions Collecting From Web of "Как добавить очищенные данные веб-сайта в базу данных?"

Есть ряд вещей, которые вы можете пожелать рассмотреть на этапе проектирования до написания кода:

  • Обобщайте свои решения настолько, насколько сможете. Если вам нужно писать PHP-код для каждой новой царапины, необходимы изменения в разработке, если целевой сайт изменит их макет, может быть слишком медленным, и может нарушить создание предприятия. Это очень важно, если вы намерены очистить большое количество сайтов, так как вероятность реструктуризации сайта статистически больше.
  • Одним из способов достижения этого обобщения является использование готовых библиотек, которые уже хороши в этом. Таким образом, вместо использования cURL используйте Goutte или какую-либо другую программную систему браузера. Это даст вам бесплатные сессии, которые на некоторых сайтах необходимо щелкнуть с одной страницы на другую. Вы также получите селектор CSS, чтобы указать, какие элементы контента вам интересны.
  • Для табличного содержимого сохраните таблицу базы данных поиска на вашем локальном сайте, которая преобразует заголовок заголовка в имя столбца базы данных. Для сеток продуктов вы можете использовать таблицу для преобразования селектора CSS (относительно каждой ячейки сетки, скажем) в столбец. Любой из них упростит реакцию на изменения в формате вашего целевого сайта (ов).
  • Если вы извлекаете текст с сайта, как минимум, вам нужно запустить его через надлежащую систему эвакуации, иначе целевой сайт может теоретически добавлять контент на свой сайт, чтобы внедрить SQL по их выбору в вашу базу данных. В любом случае, апостроф на их стороне, несомненно, вызовет сбой вашего вызова, поэтому вы должны использовать mysql_real_escape_string .
  • Если вы извлекаете HTML с сайта с целью его повторного отображения, всегда помните, чтобы он сначала очищал его. Это означает удаление дескрипторов, которые вам не нужны, удаление атрибутов, которые могут быть нежелательными, и обеспечение правильной структуры. HTMLPurifier хорош для этого, я нашел.

При ползании помните:

  • Будьте хорошим роботом и определите для себя уникальный USER_AGENT, поэтому операторы сайтов легко блокируют вас, если они того пожелают. Это плохой этикет для маскарада, как человек, использующий, скажем, Internet Explorer. Включите URL-адрес дружественной страницы справки в вашем пользовательском агенте, например, GoogleBot.
  • Не просканируйте через прокси или другие системы, предназначенные для скрытия вашей личности – сканирование в открытом режиме.
  • Уважать robots.txt; если сайт хочет заблокировать скребки, им должно быть позволено делать это, используя уважаемые соглашения. Если вы действуете как поисковая система, шансы оператора, желающего заблокировать вас, очень низки (не большинство людей хотят, чтобы их очищали поисковые системы?)
  • Всегда делайте ограничение скорости, иначе это произойдет . На моем ноутбуке разработки через медленное соединение я могу очистить сайт со скоростью 2 страницы в секунду, даже без использования multi_curl. На реальном сервере это, вероятно, будет намного быстрее – может быть, 20? В любом случае, это количество запросов одного целевого IP / домена – отличный способ найти себя в чьем-то блочном списке. Таким образом, если вы очистите, сделайте это медленно .
  • Я поддерживаю таблицу HTTP-доступа и имею правило, что, если я сделал запрос за последние 5 секунд, я «приостанавливаю» эту царапину и царапаю что-то другое. Я возвращаюсь к паузным царапаньям, когда прошло достаточно времени. Я могу склоняться к увеличению этого значения и удерживать параллельное состояние большего количества приостановленных операций в памяти.
  • Если вы очищаете несколько сайтов, одним из способов поддержания производительности без чрезмерного sleep является чередование запросов, которые вы хотите сделать с округлением. Итак, сделайте одну операцию HTTP каждый на 50 сайтах, сохраните состояние каждой царапины, а затем вернитесь к первому.
  • Если вы реализуете чередование многих сайтов, вы можете использовать multi_curl для параллелизации ваших HTTP-запросов. Я бы не рекомендовал использовать это на одном сайте по уже указанным причинам (удаленный сервер вполне может ограничить количество подключений, которые вы можете открыть им в любом случае).
  • Будьте осторожны, основывая все свое предприятие на очистке одного сайта. Если они блокируют вас, вы довольно застряли. Если ваша бизнес-модель может опираться на очистку многих сайтов, то блокирование одной из них становится менее рискованным.

Кроме того, это может быть связано с издержками для установки программного обеспечения стороннего соскабливания или получения стороннего сервиса, чтобы сделать скребок для вас. В моих собственных исследованиях в этой области появилось очень мало организаций, которые кажутся способными (и имейте в виду, что на момент написания статьи я не пробовал ни одного из них). Итак, вы можете посмотреть на них:

  • 80legs – коммерческий
  • Мозенда – коммерческая
  • Общий обход – F / OSS
  • Сканирование в любом месте – F / OSS