Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / В базу данных не происходит записи при парсинге с сайта! / 5 сообщений из 5, страница 1 из 1
27.06.2020, 17:56
    #39973773
Pavll
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В базу данных не происходит записи при парсинге с сайта!
Добрый день!
Никак не пойму, почему не происходит записи в базу данных.
При обновлении скрипта все поля в таблице остаются пустыми. На экране ничего не выводится - пустая страница.
Вот код:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
<?php

require 'C:\OSPanel\vendor\autoload.php';

//require_once('link.php');
    $host = 'localhost'; // адрес сервера
    $database = 'mysite'; // имя базы данных
    $user = 'root'; // имя пользователя
    $password = ''; // пароль

// подключаемся к серверу
$link = mysqli_connect($host, $user, $password, $database)
or die("Ошибка " . mysqli_error($link));

$baseurl = 'http://code.mu/exercises/advanced/php/parsing/poetapnyj-parsing-i-metod-pauka/1/';
$str ='http://code.mu/exercises/advanced/php/parsing/poetapnyj-parsing-i-metod-pauka/1/';

function getCurl($url){
    $curl = curl_init();
    curl_setopt($curl,CURLOPT_URL, $url);
    curl_setopt($curl,CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl,CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 0);
    $result = curl_exec($curl);
    return $result;
}

function addContent($link,$url,$title,$content){
    $query="SELECT title FROM codemu WHERE title='".$title."'";
    $result= mysqli_query($link,$query);
    $data = mysqli_fetch_assoc($result);
    if(empty($data)){
        $query="INSERT INTO codemu SET url='".$url."', title='".$title."', data=NOW(), content='".$content."'";
        mysqli_query($link,$query)or die(mysqli_error($link));
    } else return;

}




$curl = getCurl($str);
$pq = phpQuery::newDocument($curl);
$urls = $pq->find('#menu li a');
foreach($urls as $elem){
    $url = pq($elem)->attr('href');
    $url = $baseurl.$url;
    $curl2 = getCurl($url);
    $pq = phpQuery::newDocument($curl2);
    $title = $pq->find('title')->text();
    $pq->find('h1')->remove();
    $content = $pq->find('#content')->html();
    addContent($link,$url,$title,$content);
}
?>



Скажите, пожалуйста, что я делаю не так?
...
Рейтинг: 0 / 0
27.06.2020, 18:09
    #39973777
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В базу данных не происходит записи при парсинге с сайта!
Pavll
На экране ничего не выводится
А должно выводиться? Если должно, то что что и в которй строчке?
Pavll
что я делаю не так?
Было бы неплохо заняться отладкой. Возможно, код работает не так, как Вы предполагаете.
...
Рейтинг: 0 / 0
27.06.2020, 19:17
    #39973785
Pavll
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В базу данных не происходит записи при парсинге с сайта!
vkle
Pavll
На экране ничего не выводится
А должно выводиться? Если должно, то что что и в которй строчке?
Pavll
что я делаю не так?
Было бы неплохо заняться отладкой. Возможно, код работает не так, как Вы предполагаете.


На экране должно выводиться сообщение, только в случае, если не произошло соединение с БД. Больше ничего не должно выводиться.
Поскольку, сообщение не выводится, - значит подключение к БД произошло успешно.

Отладкой я никогда не занимался (только, если это ещё как-то называется), поэтому подскажите, что это за процесс - отладка?
...
Рейтинг: 0 / 0
27.06.2020, 20:25
    #39973794
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В базу данных не происходит записи при парсинге с сайта!
Pavll
Поскольку, сообщение не выводится, - значит подключение к БД произошло успешно.
Дык кроме подключения скрипт делает что-то еще. Или не делает, ибо делать нечего (например, в foreach перебирается ноль эелементов). Или срубается, разумеется, молчком.


Pavll
что это за процесс - отладка?
Тынц . По минимуму, которого часто вполне достаточно, можно через var_dump() или print_r() вывести значения переменных, чтобы сравнить их с ожидаемыми.
Разумеется, следует в настройках PHP включить отображение и вывод всех ошибок.
...
Рейтинг: 0 / 0
28.06.2020, 17:22
    #39973945
Pavll
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В базу данных не происходит записи при парсинге с сайта!
Ошибка оказалась совсем не там, где я её искал.
Были неправильно написаны сами ссылки на сайт, с которого я собирался парсить. Как только, я их исправил, - код сразу заработал.
Но, Вам всё равно - спасибо!
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / В базу данных не происходит записи при парсинге с сайта! / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]