Allegro - web scraping

Allegro - web scraping
KD
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:53
0

Dzień dobry,

Mam nadzieję że nie zakłócę spokoju na grupie. Pandemia zrobiła spustoszenie w moim życiu. Musze się szybko przebranżowić. Niestety wybór nie padł na IT. Chodź kiedyś tym się zajmowałem, ale patrząc na obecny rozwój to, to już nie na moja głowę i abstrakcję. Ale zmierzając do sedna, myślałem że napiszę sam skrobaka ale jak wspomniałem to chyba mnie przerosło. Gotowe dostępne narzędzia są super mniej lub bardziej, ale nie znalazłem takiego który by jednocześnie potrafił skrobać treść i poobierać zdjęcie. Między innymi w kręgu mojego zainteresowania jest Allegro. Udaje mi się wszystko pobrać co potrzebuję, ale jeśli chodzi o grafikę to już tylko link do grafiki mogę pobrać a nie sama grafikę.
Szukam chętnego, który byłby wstanie napisać taki program. Wydaje mi się że słusznie wytypowałem Pythona :D

Dziękuję za uwagę.


Niech wiek nie ogranicza chęci poszerzenia horyzontów!
edytowany 1x, ostatnio: KaDwa
BZ
  • Rejestracja:około 6 lat
  • Ostatnio:ponad 3 lata
  • Postów:66
1

A próbowałeś wpisać w google how to download images in python? Jak nie umiesz znaleźć odpowiedzi na takie proste pytanie to może być trudno...

Kopiuj
import requests
image_url = '*url obrazka*'
path_to_save = '*sciezka do obrazka na dysku*'
r = requests.get(image_url, stream=True)
with open(path_to_save, 'wb') as img:
    img.write(r.content)
KD
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:53
0

@bootcamp_z_czarnej_listy:
Dziękuję za odpowiedź, do nauki mi się przyda. Jednak pisząc o gotowych rozwiązaniach nie miałem na myśli kodów, tylko gotowe programy wyszperane w sieci (google). Chciałbym potrafić samemu napisać takiego skrobaka, jednak zanim bym to osiągnął to pewnie zdąży wyjść 5 wersja Pytona.


Niech wiek nie ogranicza chęci poszerzenia horyzontów!
edytowany 1x, ostatnio: KaDwa
BO
  • Rejestracja:około 6 lat
  • Ostatnio:6 dni
  • Postów:214
0

Allegro akurat ma gotowe rest api. A scraping na większości stron jest nielegalny miej to na uwadze.

edytowany 1x, ostatnio: Botek
Zobacz pozostałe 3 komentarze
IK
Jak możesz wydać na prawników więcej niż PKB małego kraju w Europie to wszystko jest legalne.
DR
Ja tyle nie mam, a nie dostałem jeszcze pozwu. Natomiast idąc waszym tokiem rozumowania powinienem mieć ich już kilkaset xd
IK
Chodzi mi tylko o to, że "Google tak robi" wcale nie oznacza, że pierwszy lepszy Mietek z komputerem też może. Też się bawię w scraping i jeszcze nie miałem żadnych problemów, ale to niczemu nie dowodzi.
BO
@Dregorio: Tak samo ja powinienem mieć parę pozwów za ściągniecie muzyki z internetu czy to ,że ich nie dostałem znaczy ,że to jest legalne? Póki szkodliwość nie jest duża to nikomu się nie chce z tym kopać.
DR
Pobieranie z internetu jest legalne. Nielegalne jest udostępnianie
TS
  • Rejestracja:prawie 5 lat
  • Ostatnio:ponad 4 lata
  • Postów:394
0

Jest Scrapy, ale czy jest wystarczający do Twojego problemu to nie wiem, nigdy nie używałem.

KD
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:53
0

Dziękuję za odzew,

Zmotywowało mnie to aby samemu podjąć się tematu. Na razie idzie nieźle :) Dzięki requests i BeautifulSoup to jest naprawdę śmiesznie łatwe (przynajmniej na razie).

Napotkałem jedynie na problem. Szukam w google i wychodzi mi to chyba nieudolnie :(
Strona która się wyświetla uzależnia wygląd od rodzaju przeglądarki. Głównie rozchodzi się o pliki graficzne, np dla Firefoxa są to .webp, a dla IE .jpg,. Jak mam ustawić nagłówki aby serwer myślał że to Windows i Explorer/edge.

Pozdrawiam

P.S.
Zauważyłem też że parsowanie przez BeautifulSoup strasznie dużo wycina z kodu html. Może się nie znam, ale w przeglądarce przeglądając kod jest dużo więcej.


Niech wiek nie ogranicza chęci poszerzenia horyzontów!
edytowany 2x, ostatnio: KaDwa
BZ
  • Rejestracja:około 6 lat
  • Ostatnio:ponad 3 lata
  • Postów:66
0
KaDwa napisał(a):

Jak mam ustawić nagłówki aby serwer myślał że to Windows i Explorer/edge.

Musisz przkazać user-agent w nagłówku. Coś w tym stylu

Kopiuj
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko',
}
response = requests.get(url, headers=headers)

https://developers.whatismybrowser.com/useragents/

KD
Dziękuję !
KD
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:53
0

@bootcamp_z_czarnej_listy:

Ustawiam:

Kopiuj
eaders =  {'User-Agent':'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.3; Win64; x64)'}
adres_url = 'https://www.whatismybrowser.com/detect/what-http-headers-is-my-browser-sending'

import requests as req

r = req.get(adres_url,headers)
r.encoding='utf-8'

Strona jednak widzi taki nagłówek:

Kopiuj
USER-AGENT 	python-requests/2.25.0

Co robię źle ?


Niech wiek nie ogranicza chęci poszerzenia horyzontów!
KD
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:53
0

@KaDwa:
Muszę sobie sam odpowiedzieć:

Kopiuj
r = req.get(adres_url, headers = headers)

Ale czemu nie wywalało błędu ?


Niech wiek nie ogranicza chęci poszerzenia horyzontów!
edytowany 1x, ostatnio: KaDwa

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.