{"id":220176,"date":"2023-02-09T16:04:00","date_gmt":"2023-02-09T13:04:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=220176"},"modified":"2022-08-10T02:46:21","modified_gmt":"2022-08-09T23:46:21","slug":"prakticheskij-primer-ispolzujte-phpquery-dlja-skanirovanija-3000-izobrazhenij-iz-tumblr","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/ru\/prakticheskij-primer-ispolzujte-phpquery-dlja-skanirovanija-3000-izobrazhenij-iz-tumblr\/","title":{"rendered":"\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440: \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 PHPQuery \u0434\u043b\u044f \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f 3000 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0438\u0437 Tumblr"},"content":{"rendered":"<p>\u041d\u0430 Tumblr \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439. \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c API-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b Tumblr \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u043e\u0434\u043d\u0430\u043a\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043e\u0431\u044b\u0447\u043d\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0438 \u043a\u043b\u044e\u0447\u0438 API. \u0414\u0440\u0443\u0433\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u2014 \u043f\u0440\u043e\u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0435\u0431-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b HTML \u0438 \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c <a href=\"https:\/\/helloacm.com\/using-domdocument-in-php-to-process-output-html\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">DOM (\u043e\u0431\u044a\u0435\u043a\u0442\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430)<\/a>, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0430\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c URL-\u0430\u0434\u0440\u0435\u0441\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0438 \u0438\u0445 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f.<\/p>\n<p>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0443\u0434\u043e\u0431\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f PHPQuery. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0430\u043c \u043f\u0438\u0441\u0430\u0442\u044c <a href=\"https:\/\/helloacm.com\/multilingual-bug-fix-php-7-wordpress-4-4-compatibility-wp-rocket-2-6-14\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP<\/a> \u0432 \u0441\u0442\u0438\u043b\u0435 JQuery \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u043c\u044b \u043f\u0438\u0448\u0435\u043c <a href=\"https:\/\/helloacm.com\/jquery-examples-random-squares\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">JQuery<\/a>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0441\u0435\u043b\u0435\u043a\u0442\u043e\u0440\u044b CSS. \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 PHP \u043c\u043e\u0449\u043d\u044b\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 DOM \u043b\u044e\u0431\u044b\u0445 HTML-\u0441\u0442\u0440\u0430\u043d\u0438\u0446.<\/p>\n<p>phpquery<\/p>\n<p>\u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d \u043f\u0441\u0435\u0432\u0434\u043e\u043a\u043e\u0434, \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0449\u0438\u0439, \u043a\u0430\u043a \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c <a href=\"https:\/\/helloacm.com\/html-tip-speed-up-dns-query-by-dns-prefetch\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">HTML<\/a> &#8212; \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0438 \u0437\u0430\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f.<\/p>\n<p><a href=\"https:\/\/twitter.com\/intent\/tweet?url=https%3A%2F%2Fhelloacm.com%2Fcase-study-use-phpquery-to-crawl-3000-images-from-tumblr%2F&#038;text=With%20PHPQuery%2C%20it%20becomes%20so%20much%20easier%20to%20analyse%20the%20DOM%21&#038;via=doctorzlai&#038;related=doctorzlai\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">\u0421 PHPQuery \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0449\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c DOM!<\/a> <a href=\"https:\/\/twitter.com\/intent\/tweet?url=https%3A%2F%2Fhelloacm.com%2Fcase-study-use-phpquery-to-crawl-3000-images-from-tumblr%2F&#038;text=With%20PHPQuery%2C%20it%20becomes%20so%20much%20easier%20to%20analyse%20the%20DOM%21&#038;via=doctorzlai&#038;related=doctorzlai\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">\u041d\u0430\u0436\u043c\u0438\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u0442\u0432\u0438\u0442\u043d\u0443\u0442\u044c<\/a><\/p>\n<pre><code>require('phpQuery.php');\nrequire('app.php');\n\u00a0\n$ip = get_ip_address();\n\u00a0\nfunction grab($url, $lvl = 5) {\n\u00a0 global $ip;\n\u00a0 if ($lvl &lt; = 0) {\n\u00a0 \u00a0 return;\n\u00a0 }\n\u00a0 $doc = phpQuery::newDocumentFile($url);\n\u00a0 foreach(pq('div.TumbPostPane') as $p) {\n\u00a0 \u00a0 \u00a0 $img = pq($p)-&gt;find('img.PhotoPostMainPhoto')-&gt;attr('src');\n\u00a0 \u00a0 \u00a0 $desc = htmlspecialchars(trim(pq($p)-&gt;find('div.MetaPanel')-&gt;html()));\n\u00a0 \u00a0 \u00a0 $url = pq($p)-&gt;find('a')-&gt;attr('href');\n\u00a0 \u00a0 \u00a0 $err = '';\n\u00a0 \u00a0 \u00a0 if (UploadPic($img, $desc, $err, $ip)) { \/\/ find pictures and save locally\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0echo \"OK = $err n\";\n\u00a0 \u00a0 \u00a0 } else {\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0echo str_replace(\"&lt;br \/&gt;\", \"n\", \"Error = $err n\");\n\u00a0 \u00a0 \u00a0 } \u00a0 \u00a0 \n\u00a0 \u00a0 \u00a0 grab($url, $lvl - 1); \/\/ recursive download\n\u00a0 }\n}\n\u00a0\ngrab(\"&lt;a class=\"vglnk\" target=\"_blank\" href=\"https:\/\/uploadbeta.com\" rel=\"nofollow\"&gt;&lt;span&gt;https&lt;\/span&gt;&lt;span&gt;:\/\/&lt;\/span&gt;&lt;span&gt;uploadbeta&lt;\/span&gt;&lt;span&gt;.&lt;\/span&gt;&lt;span&gt;com&lt;\/span&gt;&lt;\/a&gt;\", 1); <\/code><\/pre>\n<p>\u0421 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u044c \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044e \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u044b\u0441\u044f\u0447 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0437\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442. \u0412\u0441\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 <a href=\"https:\/\/helloacm.com\/ping-when-vpsdedicate-server-is-restarting\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">\u0441\u0435\u0440\u0432\u0435\u0440\u0435 VPS<\/a>. \u0424\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043d\u0430 \u0441\u0430\u0439\u0442\u0435: <a href=\"https:\/\/uploadbeta.com\/picture-gallery\/?sort=1\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">uploadbeta.com<\/a><\/p>\n<p>\u041b\u0443\u0447\u0448\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043c\u0435\u0436\u0434\u0443 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0442\u0440\u0430\u043d\u0438\u0446, \u0438\u043d\u0430\u0447\u0435 <a href=\"https:\/\/helloacm.com\/what-is-my-ip\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">IP-\u0430\u0434\u0440\u0435\u0441<\/a> \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-154242-61e53c0a386d6.jpg\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-154242-61e53c0a386d6.jpg\" alt=\"\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440: \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 PHPQuery \u0434\u043b\u044f \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f 3000 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0438\u0437 Tumblr\" ><\/a><\/p>\n<p>\u0421\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439<\/p>\n<p>PS, \u0432\u0435\u0431-\u0441\u0430\u0439\u0442 Image Upload \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e API \u0434\u043b\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0446\u0435\u043b\u0435\u0439 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u043e\u0439 \u0434\u043e\u0431\u0440\u043e\u0441\u043e\u0432\u0435\u0441\u0442\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f: <a href=\"https:\/\/uploadbeta.com\/picture-gallery\/faq.php#api\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">https:\/\/uploadbeta.com\/picture-gallery\/faq.php#api .<\/a><\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0437\u0430\u043f\u0438\u0441\u0438:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/helloacm.com\" class=\"external external_icon\">helloacm.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440: \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 PHPQuery \u0434\u043b\u044f \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f 3000 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0438\u0437 Tumblr<\/p>\n","protected":false},"author":1,"featured_media":220869,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[900,921,1013,809,809,850,900,1013,921,850],"tags":[1171],"class_list":{"0":"post-220176","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","6":"hentry","7":"category-kod-2","8":"category-drugoj","9":"category-poleznye-sajty","10":"category-php-ru","12":"category-uchebniki-ru","17":"tag-affiai-ru"},"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/ru\/wp-json\/wp\/v2\/posts\/220176","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/ru\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/ru\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/ru\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/ru\/wp-json\/wp\/v2\/comments?post=220176"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/ru\/wp-json\/wp\/v2\/posts\/220176\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/ru\/wp-json\/wp\/v2\/media\/220869"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/ru\/wp-json\/wp\/v2\/media?parent=220176"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/ru\/wp-json\/wp\/v2\/categories?post=220176"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/ru\/wp-json\/wp\/v2\/tags?post=220176"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}