Pobieranie danych do pliku csv (scrapper)

0

Dzień dobry,
Mam pytanie,
Co byłoby potrzebne (jaka wiedza, jakie funkcje trzeba byłoby zastosować), aby napisać scrappera, który pobierałby dane do pliku csv z wybranych przeze mnie kategorii [(np. nazwa produktu, email sprzedawcy, numer telefonu, opis produktu, lokalizacja sprzedawcy), a jeśli danego wpisu by nie było, to by go pominęło] z konkretnej domeny (np. z Allegro)?

Poza tym, jak można dodać interfejs graficzny do swojego programu oraz ewentualnie, kiedy bym chciał podpiąć go do proxy?
Dziękuję za wszelkie odpowiedzi!

2

bs4 albo ew. selenium, gdy strona jest problematyczna. Niektore strony np. pewna polska, popularna strona z ogloszeniami pracy (ma just w nazwie :] ) tworzy content strony na podstawie even-listenera w suwaku i w tym momencie zwyklymi requestami nie zaciagniesz wszystkiego.

1

To zależy od strony. Niektóre zwracają prosty HTML, więc proste parsowanie z BS4/Scrapy wystarczy. Inne ładują dane dynamicznie z użyciem JavaScriptu z jakiegoś API i ich użycie wymaga słania odpowiednich zapytań, czasem trzeba wydobywać różne klucze, zarządzać ciastkami albo okazuje się, że niezbędne są odpowiednie nagłówki. W skrajnym przypadku strona może być chroniona przez narzędzia przeciwko botom pokroju PerimeterX, Akamai, Datadome, CloudFlare czy Incapsula - próba ich obchodzenia to zabawa na długie wieczory wchodząca już w hacking - trzeba przykładowo rozwiązywać captche (są w Google płatne serwisy), renderować strony w wirtualnych przeglądarkach by wydłubywać tajne klucze generowane przez skomplikowane JavaScripty czy stosować całe farmy adresów IP by nie zostać zbyt szybko zbanowanym. Tak że, to zależy.

Scrapy będzie dobrym wyborem. Co do Allegro, to akurat ono jest trywialne, nie ma tu jakiejś specjalnej osłony przed botami. Testowane REPL-em Scrapy scrapy shell https://allegro.pl/kategoria/komputery?bmatch=baseline-al-product-cl-eyesa2-engag-dict45-ele-1-3-0513 i wszystko wydaje się być dostępne do zbierania.

>>> from pprint import pprint
>>> pprint(response.css('article a[title]::text').getall())
[u'ZESTAW GRACZA i7 RX-580 16GB +MONITOR 24 +GRATIS',
 u'OFFICE 2019 PRO PLUS |LICENCJA DO\u017bYWOTNIA ! PL',
 u'Windows 10 HOME 32/64Bit Klucz',
 u'Microsoft Office 2016 Professional Pakiet Klucz',
 u'Laptop Ultrabook Kruger&Matz EXPLORE 1250',
 u'Apple MacBook AIR a1465 Core i5 4GB 128GB SSD',
 u"ZESTAW DO GIER! INTEL I7 8GB 500GB + AOC LED 24'",
 u'DO GIER Hammet 4x2,5GHz 8GB 240GB SSD GRAFIKA 2GB',
 u'Microsoft Windows 10 Pro Professional 32/64bit Kod',
 u'WINDOWS 10 PROFESSIONAL PRO 32 bit 64 bit PL KLUCZ',
 u'APPLE IPAD MINI SPACE GRAY 16 GB A1432 KLASA A',
 u'DELL Chromebook 11 4GB HDMI SSD USB 3.0 MOCNA BAT',
 u'Komputer RYZEN 12 RDZENI 16GB RX VEGA SSD480 Win10',
 u'Laptop Lenovo X240 i5 4-Gen 4GB 120GB SSD Win 10',
 u'Apple MacBook White A1342 C2D 2.4 4gb 250gb',
 u'ZESTAW GRACZA i7 RX-580 16GB +MONITOR 24 +GRATIS',
 u'KOMPUTER DO GIER QUAD CORE 8GB 320GB GRAFIKA 1GB',
 u'Drukarka skaner HP DeskJet 2630 + AirPrint i wi-fi',
 u'OUTLET x-kom G4M3R 600 i7 32GB 250+500SSD GTX Win',
 u'Wzmacniacz sygna\u0142u WiFi - FRITZ!WLAN Repeater 310',
 u'DONGLE USB ADAPTER BLUETOOTH 4.0 HIGH SPEED SZYBKI',
 u'Laptop Biznesowy HP i3 320GB Kamera Windows',
 u'LAPTOP HP 4 RDZENIOWY 8GB SSD256 Win10',
 u'Kierownica Logitech DrivingForce G29 PS4 PC +BIEGI',
 u"Monitor Dell P2212H 22'' LED 1920x1080 DVI VESA",
 u'TABLET 10 CALI IPS 32GB +ETUI Z KLAWIATURA, HDMI',
 u'ROUTER Huawei B593 LTE II 4G MODEM 2x ANTENY',
 u'TRACER STUDIO PRO mikrofon rami\u0119 popfiltr kosz PC',
 u'Fotel Gamingowy Obrotowy Biurowy Kube\u0142kowy Gracza',
 u'TABLET HUAWEI MediaPad T3 10" WiFi Szary !',
 u'KAMERA KAMERKA INTERNETOWA + USB FULL HD',
 u'REPEATER TP-LINK RE200 AC750 WZMACNIACZ WI-FI AC',
 u'KAMERA KAMERKA INTERNETOWA ONLINE Z MIKROFONEM',
 u'KLAWIATURA POD\u015aWIETLANA DLA GRACZY GAMINGOWA LED',
 u'TP-LINK WA850RE WZMACNIACZ SIECI WI-FI 11N 300MB/s',
 u'Drukarka HP Deskjet 3720 tusz nr 304',
 u'DO GIER! CORE i5 8GB RAM GEFORCE GTX 1050 WIN10',
 u'HP 255 G7 15,6" FHD A4-9125 8GB SSD256GB R3',
 u'URZ\u0104DZENIE WIELOFUNKCYJNE HP ENVY 4500 DUPLEX WIFI',
 u'GAMINGOWA PODK\u0141ADKA POD MYSZ POD\u015aWIETLANA DU\u017bA LED',
 u'Laptop Lenovo X240 i5 4-gen 8GB 120GB SSD Win 10',
 u'Dysk SSD GOODRAM CX400 256GB SATA3 550/490 MB/s',
 u'2w1 TABLET/LAPTOP P2212t 11,6 FHD Win10 PL',
 u'Tablet 10.1cali android 9.0 Wi-Fi 2GB 32GB dualSIM',
 u"OBUDOWA DYSKU 2,5'' KIESZE\u0143 HDD SATA USB 2.0 +ETUI",
 u'Domowy MODEM ROUTER WiFi 3G kart\u0119 SIM bez SIMLOCKa',
 u'Drukarka Kolorowa Wielofunkcyjna HP 2630 Skaner',
 u'DRUKARKA SKANER KSERO 3w1 Z WIFI WY\u015aWIETLACZ KOLOR',
 u'Drukarka Kolorowa Wielofunkcyjna HP Skaner3w1 WIFI',
 u"PODSTAWKA PODK\u0141ADKA CH\u0141ODZ\u0104CA POD LAPTOP-A 15-19''",
 u'HUB USB 3.0 ROZDZIELACZ Z KABLEM 4 PORTY +ZASILACZ',
 u"Laptop Dell Latitude e6330 / 13,3'' / i5-3340m",
 u'FOTEL GAMINGOWY m\u0142odzie\u017cowy GRACZA Extreme EX',
 u'Drukarka Atramentowa HP Envy seria 5540 tusz hp 62',
 u'KOMPUTER DO GIER 10 Rdzeni! 3,8GHz Radeon R7 8GB',
 u'Kamerka Kamera INTERNETOWA PC do LEKCJI + MIKROFON',
 u'TP-LINK Archer C6 Router WIFI AC1200 Serwer VPN',
 u'RGB DO GIER Core i7 RTX 2060 32GB SSD 480 +2TB W10',
 u'Kamera Internetowa Full HD USB FV23% z Polski 24h',
 u'Drukarka skaner Canon MX535 Wi-Fi',
 u'Drukarka Kolorowa Skaner HP Envy 5030 hp 304',
 u'Dell Latitude 7390 i5-8350 8GB 256SSD FHD TOUCH 10',
 u'4 Tusze do HP 903XL Officejet 6900 6950 6960 6970',
 u'TA\u015aMA BROTHER TZe-631 12mm TZ-631 \u017b\xd3\u0141TA ORYGINALNA']

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