Maison développement back-end tutoriel php 超囧的图片链接批量获取和下载_PHP教程

超囧的图片链接批量获取和下载_PHP教程

Jul 13, 2016 pm 05:48 PM
windows Vers le bas 下载 et 图片 exister 壁纸 批量 de 网站 获取 链接

以前在windows下经常去一些壁纸网站,或者是美女的QQ相册,又或者是一个激情美女图片网站下载图片,经常需要点击右键然后“另存为”,要是遇见经典套图,这种重复的操作肯定会让你失去下载的动力。后来用了Firefox有个插件好像是DownloadThemAll(记得不清除了,反正就是批量下载网页链接的,可以筛选格式下载图片),结合迅雷使用可以极大的提高图片下载的效率(但是如果页面小图片过多,下完之后也需要很长时间来筛选删除废文件)。现在用了ubuntu,没有windows和迅雷,也不用firefox很多年了。我们如何来批量下载网页中的美图?在chrome下我一直想找这样一款插件,可惜只找到IMG inspector这个插件,这个插件的工作方式是定义一个基准URL,利用占位符,定义好的步长和循环范围来重新生成链接并预览。不得不说这样的功能是在太弱了,即使是套图的URL也不一定是有规律可循的,所以这种方法并不可取也不实用。
  于是后来琢磨着学学Chrome插件开发,自己来做一个 可惜一直没有什么动力。而且我也不清楚chrome插件能不能解决图片下载的问题:是调用客户端下载软件还是调用原生浏览器下载,而且这样一来,还得好好学习chrome的API的一些高级方法,开发成本顿增。遂放弃之。于是转换思路继续琢磨。然后把几个难点问题一一分拆开来分析(环境:UBUNTU+CHROME/FIREFOX):

  1)如何获取当前页面的图片地址?

  这个最简单的莫过于在chrome的控制台或者firebug中执行脚本程序了,我也想过利用网页爬虫工具比如SimpleHtmlDom这个强大的开源框架(如果你熟悉jquery这个框架让你在服务器端使用jquery获取标签,十分方便),不过这样可能执行的效率上差了一截。复杂性也增加了一些。

  2)如何确定当前页面的图片大小是否符合我的“胃口”?

  这个问题得分两种情况考虑:网页图片一般分为缩略图和原图。缩略图一般都附带原图链接。也就是用a标签包裹img标签,我们需要获取a标签的href值而不是img标签的src值;原图一般只是一个img标签,这样你可以利用Image对象的width和height来筛选这些图片。对于缩略图筛选可以new一个Image对象设置src的值以后对其高度和宽度进行筛选。不过对于缩略图我一般不筛选,这样的图片一般都是很大的,相反你最可能要筛选的是a标签里面的img对象,因为很多logo和button的图片都是链接包裹的小图片。

  3)如何下载图片?

   上面两步都是使用控制台的脚本程序来完成的,整个代码不超过10行(包含jquery相机加载的代码)。最后你可以不废吹灰之力得到当前页面筛选之后的图片的地址。可惜就在这一步了,得到了地址没有用,真正废操作的步骤在如何一次性的把这些图片下载到本地的机器。如果我会chrome插件开发,知道chrome如何调用系统的方法(其实我也不确定chrome是否可以,如果浏览器的安全限制足够严格那么这肯定是行不通的),然后熟悉下wget这个强悍无比的下载命令。这就迎刃而解了。遗憾的是,前两个我都不熟悉,不过没关系天无绝人之路,条条大道通罗马,一定会有另外一种方法的。

  4)飞越控制台Console

  现在我们的思路被卡在chrome的控制台里了,空有大把图片链接却不知道怎么下载他们(其实也只是当前窗口的图片链接)。对于chrome插件开发我始终抱有一丝幻想,可惜学习动力实在没有,而且自己也始终质疑chrome这么安全严格的浏览器会允许js与客户端交互吗?

  于是我开始退步思考问题了,不下载文件,直接把这些文件存储在本地的任何一个我能日后读取的地方就行。于是思路延续到html5 的本地存储localStorage和本地数据库,也考虑了Google Gears的本地数据库,后来发现要么搞得过于复杂,要么行不通。慢慢的思路开始朝着一个简单的方向漂移--jQuery,没错就是他--$.getJSON()。如果能够跨域将图片地址发到本地的一个网站然后在后台下载不就行了吗?于是马上用Code Igniter制作了一个网站:只在控制器里面加入了一个只有一个方法的php的控制器类文件,代码仍然不超过10行。代码的作用只是将所有的图片链接换行写入一个文本文件(urls.txt)。

  5) 无敌下载器

  到这快要结束了,也许有人问我,你这不还是没有实现下载图片吗?嘿嘿,nb人物要登场了:wget -i -b urls.txt 。在终端里面进入网站目录,执行该命令,自动后台下载文本文件里面的每一行的图片地址。

  PS:前几天对这个命令不熟悉,拿一H网做实验,误用了参数在后台默默的下载了1.1G的黄图,后来发现了强行kill了该进程。总之这个命令下载网站内容那是强悍到不行。 如果你用linux,这个命令很邪恶,想干坏事到了个位哦!

  6) 能不囧吗?

  这个操作流程,真的很囧。

  囧一:a)部署好本地的网站--》b)右键打开chrome控制台或者firebug--》c)复制脚本--》d)粘贴--》e)Enter--f》打开终端--g》wget。这个操作对于一个页面很多图片(缩略图,套图)的网页来说,很便利。但是如果我打开了十个网页,每个页面就都要执行b和d以及e操作,如果这段脚本能够做成chrome插件嵌入到浏览器中那么至少可以省下2步:打开页面手动点一下插件图标或者设置为自动执行脚本。这样易用性就大大提升了。

  囧二:如何省去wget这一步,直接在php后台执行下载。这就需要考虑使用php调用ubuntu系统方法了,不熟,有待研究。

  囧三:如何省去部署网站这一步,需要网站的根本原因是我无法将多个页面的图片地址合并存储在一起,考虑过cookie但是大小限制是个问题,图片地址过百很正常(尤其是包含中文的时候)。而且还要考虑存储后方读取便调用的问题。

   这几个问题还没有考虑好,现在只是在考虑实现囧二。其实这个过程对技术本身没有多大提升,但是后来回想整个流程,发现对面对问题时的思路和方法论上面都有了明显的提高。欢迎大家来讨论!


摘自 Hurry的专栏

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/478448.htmlTechArticle以前在windows下经常去一些壁纸网站,或者是美女的QQ相册,又或者是一个激情美女图片网站下载图片,经常需要点击右键然后另存为,要是...
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Puis-je installer mysql sur Windows 7 Puis-je installer mysql sur Windows 7 Apr 08, 2025 pm 03:21 PM

Oui, MySQL peut être installé sur Windows 7, et bien que Microsoft ait cessé de prendre en charge Windows 7, MySQL est toujours compatible avec lui. Cependant, les points suivants doivent être notés lors du processus d'installation: téléchargez le programme d'installation MySQL pour Windows. Sélectionnez la version appropriée de MySQL (communauté ou entreprise). Sélectionnez le répertoire d'installation et le jeu de caractères appropriés pendant le processus d'installation. Définissez le mot de passe de l'utilisateur racine et gardez-le correctement. Connectez-vous à la base de données pour les tests. Notez les problèmes de compatibilité et de sécurité sur Windows 7, et il est recommandé de passer à un système d'exploitation pris en charge.

Comment résoudre MySQL ne peut pas se connecter à l'hôte local Comment résoudre MySQL ne peut pas se connecter à l'hôte local Apr 08, 2025 pm 02:24 PM

La connexion MySQL peut être due aux raisons suivantes: le service MySQL n'est pas démarré, le pare-feu intercepte la connexion, le numéro de port est incorrect, le nom d'utilisateur ou le mot de passe est incorrect, l'adresse d'écoute dans my.cnf est mal configurée, etc. 2. Ajustez les paramètres du pare-feu pour permettre à MySQL d'écouter le port 3306; 3. Confirmez que le numéro de port est cohérent avec le numéro de port réel; 4. Vérifiez si le nom d'utilisateur et le mot de passe sont corrects; 5. Assurez-vous que les paramètres d'adresse de liaison dans My.cnf sont corrects.

Solutions aux erreurs rapportées par MySQL sur une version système spécifique Solutions aux erreurs rapportées par MySQL sur une version système spécifique Apr 08, 2025 am 11:54 AM

La solution à l'erreur d'installation de MySQL est: 1. Vérifiez soigneusement l'environnement système pour vous assurer que les exigences de la bibliothèque de dépendance MySQL sont satisfaites. Différents systèmes d'exploitation et exigences de version sont différents; 2. Lisez soigneusement le message d'erreur et prenez des mesures correspondantes en fonction des invites (telles que les fichiers de bibliothèque manquants ou les autorisations insuffisantes), telles que l'installation de dépendances ou l'utilisation de commandes sudo; 3. Si nécessaire, essayez d'installer le code source et vérifiez soigneusement le journal de compilation, mais cela nécessite une certaine quantité de connaissances et d'expérience Linux. La clé pour finalement résoudre le problème est de vérifier soigneusement l'environnement du système et les informations d'erreur et de se référer aux documents officiels.

MySQL ne peut pas être installé après le téléchargement MySQL ne peut pas être installé après le téléchargement Apr 08, 2025 am 11:24 AM

Les principales raisons de la défaillance de l'installation de MySQL sont les suivantes: 1. Problèmes d'autorisation, vous devez s'exécuter en tant qu'administrateur ou utiliser la commande sudo; 2. Des dépendances sont manquantes et vous devez installer des packages de développement pertinents; 3. Conflits du port, vous devez fermer le programme qui occupe le port 3306 ou modifier le fichier de configuration; 4. Le package d'installation est corrompu, vous devez télécharger et vérifier l'intégrité; 5. La variable d'environnement est mal configurée et les variables d'environnement doivent être correctement configurées en fonction du système d'exploitation. Résolvez ces problèmes et vérifiez soigneusement chaque étape pour installer avec succès MySQL.

Impossible d'accéder à MySQL depuis Terminal Impossible d'accéder à MySQL depuis Terminal Apr 08, 2025 pm 04:57 PM

Impossible d'accéder à MySQL à partir du terminal peut être dû à: le service MySQL n'est pas en cours d'exécution; Erreur de commande de connexion; autorisations insuffisantes; Connexion de blocs de pare-feu; Erreur de fichier de configuration MySQL.

Comment tirer la ligne de référence verticale de PS Comment tirer la ligne de référence verticale de PS Apr 06, 2025 pm 08:18 PM

Tirez les guides verticaux dans Photoshop: Activer la vue du règlement (View & gt; souverain). Volez la souris sur le bord vertical de la règle, puis le curseur devient une ligne verticale avec des flèches doubles et maintenez et faites glisser la souris pour retirer la ligne de référence. Cliquez sur Supprimer en faisant glisser le guide ou en le plantant dans une croix.

Comment copier et coller Mysql Comment copier et coller Mysql Apr 08, 2025 pm 07:18 PM

Copier et coller dans MySQL incluent les étapes suivantes: Sélectionnez les données, copiez avec Ctrl C (Windows) ou CMD C (Mac); Cliquez avec le bouton droit à l'emplacement cible, sélectionnez Coller ou utilisez Ctrl V (Windows) ou CMD V (Mac); Les données copiées sont insérées dans l'emplacement cible ou remplacer les données existantes (selon que les données existent déjà à l'emplacement cible).

MySQL Téléchargement Invite les erreurs d'écriture du disque Comment gérer MySQL Téléchargement Invite les erreurs d'écriture du disque Comment gérer Apr 08, 2025 am 11:51 AM

Le téléchargement MySQL invite une erreur d'écriture de disque. La solution est la suivante: 1. Vérifiez si l'espace disque est insuffisant, nettoyez l'espace ou remplacez un disque plus grand; 2. Utilisez des outils de détection de disque (tels que CHKDSK ou FSCK) pour vérifier et corriger les erreurs de disque, et remplacer le disque dur si nécessaire; 3. Vérifiez les autorisations de répertoire cible pour vous assurer que le compte d'utilisateur a des autorisations d'écriture; 4. Modifiez l'outil de téléchargement ou l'environnement réseau et utilisez le gestionnaire de téléchargement pour restaurer le téléchargement interrompu; 5. Fermez temporairement le logiciel ou le pare-feu antivirus et le réactiver une fois le téléchargement terminé. En dépannage systématiquement ces aspects, le problème peut être résolu.

See all articles