Allegro - web scraping

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ę.

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...

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)
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.

0

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

0

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

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.

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

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/

0

@bootcamp_z_czarnej_listy:

Ustawiam:

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:

USER-AGENT 	python-requests/2.25.0

Co robię źle ?

0

@KaDwa:
Muszę sobie sam odpowiedzieć:

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

Ale czemu nie wywalało błędu ?

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