Czy ktoś pomoże lekko edytować ten kod?

Odpowiedz Nowy wątek
2019-11-04 23:04
0

Hejka, Czy ktoś pomoże edytować ten skrypt by pobierał wszystkie pliki a nie tylko ten wyznaczony?

# imported the requests library 
import requests 
image_url = "https://www.python.org/static/community_logos/python-logo-master-v3-TM.png"

# URL of the image to be downloaded is defined as image_url 
r = requests.get(image_url) # create HTTP response object 

# send a HTTP request to the server and save 
# the HTTP response in a response object called r 
with open("python_logo.png",'wb') as f: 

    # Saving received content as a png file in 
    # binary format 

    # write the contents of the response (r.content) 
    # to a new file in binary mode. 
    f.write(r.content) 
edytowany 1x, ostatnio: cerrato, 2019-11-05 08:54

Pozostało 580 znaków

2019-11-04 23:20
1

Jak to edytować, jakie "wszystkie plki"?


Pozostało 580 znaków

2019-11-04 23:50
4

Takie tematy są najlepsze - autor jest tutaj od paru dni i dzielnie sobie poczyna zadając kolejne pytania ;)

Pewnie chciałbyś jakiś zestaw plików z danej strony, więc na pewno nie możesz mieć tak zapisanego image_url tylko jakąś je zaciągnąć.
Zróbmy przykład z życia wzięty - moja córka ma 3 lata i uwielbia Psi Patrol. Znalazłem fajną stronę, gdzie są tutoriale jak rysować bohaterów tej cudownej bajki i chcę pobrać z danego urla wszystkie obrazki, które są w danym poradniku. Korzystam z jakiejkolwiek przeglądarki, która ma narzędzia programistyczne by zobaczyć jakie te obrazki mają urle i czy są absolutne (cały adres URL) czy relatywne. Wyszedł mi w parę minut taki skrypt:

from urllib.parse import urlparse
import os, re, requests

response = requests.get('https://sketchok.com/cartoon-characters/paw-patrol/how-to-draw-rubble-paw-patrol')

url = urlparse(response.url)
domain_url = url.scheme + "://" + url.netloc

# chce znalezc wszystkie obrazki z tego tutoriala
images = re.findall(r'\/images\/articles\/01-cartoons\/052-paw-patrol\/01\/.*\.jpg', response.text)

# chce je miec unikatowe - robie set
images = set(images)
images = list(images)

# sortuje
images.sort()
images = [domain_url + i for i in images]

for item in images:
    name = 'image' + os.path.basename(item)
    content = requests.get(item).content

    with open(name, 'wb') as file:
        file.write(content)

Odpalam go sobie elegancko w folderze python3 nazwa.py i mam wszystkie obrazki Rubble'a :)

W skrócie zatem zastanów się:

  • co chcesz ściągnąć
  • jak chcesz to rozpoznać - ja wykorzystałem bardzo prosty regex (polecam testowanie: https://regex101.com/)
  • jak chcesz nazwać pliki i gdzie powinny być (u mnie są w folderze, w którym się znajduje skrypt)

Powodzenia ;)

edytowany 1x, ostatnio: Pipes, 2019-11-04 23:52

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0