Maison  >  Article  >  développement back-end  >  Comment utiliser Python pour collecter des données d’image ?

Comment utiliser Python pour collecter des données d’image ?

PHPz
PHPzavant
2023-05-09 09:34:161590parcourir

Envoyer une demande

Comment utiliser Python pour collecter des données d’image ?

Nous déterminons d'abord l'URL Nous utilisons d'abord les outils de développement pour localiser les données souhaitées. J'ai constaté que le contenu se trouve dans le code source de la page Web.

url = 'https://www.hexuexiao.cn/tj/WuJiayi/'

res = requests.get(url)

# print(res.text)
html_url = re.findall(&#39;<a href="https://www.hexuexiao.cn/a/(\d+).html" rel="external nofollow"  >&#39;,res.text,re.S)
urls = sorted(list(set(html_url)), key=html_url.index)

La valeur de notre variable html_url ici est un objet d'expression régulière, utilisé pour faire correspondre les liens vers les images de sites Web. Le bloc de code list(set(html_url)) convertit l'objet liste en un objet de collection. Utilisez la méthode set() pour convertir l'objet liste en un objet de collection. est une méthode pour convertir l'objet liste en un objet collection Méthode pour convertir les éléments d'une collection en un ensemble. html_url.index est un objet entier qui représente le nombre de fois où chaque élément de html_url apparaît dans la chaîne HTML d'origine pour effectuer le tri. html_url 变量的值是一个正则表达式对象,用于匹配网站图片的链接。代码块 list(set(html_url)) 将列表对象转换为集合对象,使用 set() 方法将列表对象转换为集合对象,这是一个将列表中的元素转换为集合的方法。html_url.index 是一个整数对象,表示 html_url中各元素在原始 HTML 字符串中出现的次数,以此来实现排序。

保存数据

for url1 in urls:
    for page in range(0,10):
        url2 = f&#39;https://www.hexuexiao.cn/a/{url1}-{page}.html&#39;
        # print(url2)
        res1 = requests.get(url2)
        # print(res1.text)
        url3 = re.findall(&#39;<img  src=(.*?)/ alt="Comment utiliser Python pour collecter des données d’image ?" ></a>&#39;,res1.text,re.S)[0]
        print(url3)
        url3=re.sub(&#39;&#39;,"",url3)
        print(url3)

我们这段代码中的 urls 列表是一个字典,其中键是 URL,值是页码。在循环中,我们使用 range() 函数从 0 到 9 迭代页码。接下来,我们使用 requests.get() 方法分别获取每个页面的 HTML 代码,并使用正则表达式匹配出所有的图片链接。最后,我们使用 requests.get() 方法获取每个图片链接的内容,并将其写入一个文件中。

保存图片

 content = requests.get(url3).content
        with open(&#39;图片\&#39; + str(num) + &#39;.jpg&#39;, mode=&#39;wb&#39;) as f:
            f.write(content)

我们这段代码中的 content 变量的值是从图片链接 url3 中获取的内容。然后,使用 with open() 语句打开一个二进制文件,并将 content 写入文件中。在这个过程中,num

Enregistrer les données

rrreee

La liste urls dans notre code est un dictionnaire, où la clé est l'URL et la valeur est le numéro de page. Dans la boucle, nous itérons les numéros de page de 0 à 9 en utilisant la fonction range(). Ensuite, nous utilisons la méthode requests.get() pour obtenir le code HTML de chaque page et utilisons des expressions régulières pour faire correspondre tous les liens d'image. Enfin, nous utilisons la méthode requests.get() pour obtenir le contenu de chaque lien image et l'écrire dans un fichier. 🎜🎜Enregistrez l'image🎜rrreee🎜La valeur de la variable content dans notre code est le contenu obtenu à partir du lien image url3. Ensuite, utilisez l'instruction with open() pour ouvrir un fichier binaire et écrire content dans le fichier. Dans ce processus, la valeur de la variable num est le numéro de série de l'image dans le fichier actuel. L'obtention d'images est la même que l'obtention d'audio auparavant et est enregistrée sous forme de fichier binaire. 🎜🎜De cette façon, nos données d'image sont enregistrées. Ici, je ne montrerai pas l’effet. Le principe est le même. Si on trouve l’adresse de l’image, on peut l’obtenir. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer