slamjaw Ierakstīts Marts 10, 2009 Share Ierakstīts Marts 10, 2009 Labdien! Lieta tāda, ka gribu uzrakstīt programmu, kas pārbauda interneta adreses diapazonā piemēram no 1 līdz 100000, un atver, vai saglabā tikai tās lapas, kuras ir ejošas. Lapa izskatās aptuveni tā - http://www.kautkas.lb/index_1.php?logo_small.gif vieninieka vietā ievietot skaitli no 2 - 100000 un pārbaudīt vai saite ir ejoša. Ejošās lapam vai nu tiek atvērtas uz IExplorer vai tiek saglabātas piemēram log.txt failā. Vai kāds ir rakstījis kautko līdzīgu? Kāds var man ieteikt kautko noderīgu? Paldies! Link to comment Share on other sites More sharing options...
Vilx- Marts 10, 2009 Share Marts 10, 2009 Tev tas obligāti C++ valodā jāraksta? Link to comment Share on other sites More sharing options...
bubu Marts 10, 2009 Share Marts 10, 2009 (labots) Draudziņu bildes vajag savilkt? Bet kāpēc tam vajag C++? Daudz ērtāk izmantot kādu skriptu valodu, piemēram Python: from urllib import urlopen for x in xrange(2, 100000+1): print x try: with urlopen("http://www.kautkas.lb/index_%s.php?logo_small.gif" % x) as url: data = url.read() with open("output_%s.gif" % x, "wb") as f: f.write(data) except: pass Labots Marts 10, 2009 - bubu Link to comment Share on other sites More sharing options...
slamjaw Marts 10, 2009 Author Share Marts 10, 2009 Tev tas obligāti C++ valodā jāraksta? Nu nav obligāti. Man galvenais vajag ejošos linkus atrast. Tā kā es skolā mācos c++, tāpēc arī nolēmu to darīt ar šo valodu ... runājot par "Python" skriptu, neesmu nekad ar to sastapies... Kā to skriptu kompilēt? Link to comment Share on other sites More sharing options...
bubu Marts 10, 2009 Share Marts 10, 2009 Pitona skriptus nevajag kompilēt. Uzinstalē python'u, atver komandrindu, un tur ieraksti python.exe skripts.py. Un viss notiksies. Protmas, to var darīt arī no kādas IDE's (defaultā pitonam nāk līdzi IDLE). Link to comment Share on other sites More sharing options...
BoredOne Marts 10, 2009 Share Marts 10, 2009 (labots) Protams, vēl nedaudz pielabojot bubu koda vienu rindiņu var padarīt lietas vēl ērtākas. with open("c:\\mans_krutais_bilzu_folderis\\output_%s.gif" % x, "wb") as f: Un ja vēl wx... Labi, labi es te apstāšos. Python skripti 'kompilējās', tos palaižot. Ejam uz python.org un velkam jaunāko versiju (2.6 laikam), uzinstalējam, iekopējam bubu tekstu mans_skripts.py teksta failā, saglabājam, aizveram, dubultklikšķis uz faila = win. Edit: Ehh bubu jau paspēja... Labots Marts 10, 2009 - BoredOne Link to comment Share on other sites More sharing options...
bubu Marts 10, 2009 Share Marts 10, 2009 Nevajag jau uzreiz tā eskeipoties, pietiek ar mazu r burtiņu with open(r"c:\mans_krutais_bilzu_folderis\output_%s.gif" % x, "wb") as f: Link to comment Share on other sites More sharing options...
BoredOne Marts 10, 2009 Share Marts 10, 2009 Nu a ja cilvēkam vajag šādu? with open(u"c:\glāžšķūņrūķīšu_bildītes\output_%s.gif" % x, "wb") as f: Labi, labi - tā ir tikai piekasīšanās. Man bija garlaicīgi, un te reti runā par pitonu. Link to comment Share on other sites More sharing options...
bubu Marts 10, 2009 Share Marts 10, 2009 A kur problēma? with open(ur"c:\glāžšķūņrūķīšu_bildītes\output_%s.gif" % x, "wb") as f: Link to comment Share on other sites More sharing options...
slamjaw Marts 10, 2009 Author Share Marts 10, 2009 Pitona skriptus nevajag kompilēt. Uzinstalē python'u, atver komandrindu, un tur ieraksti python.exe skripts.py. Un viss notiksies.Protmas, to var darīt arī no kādas IDE's (defaultā pitonam nāk līdzi IDLE). Tas, ka beigās ir .gif vēl neliecina, ka tā ir bilde... lai saprastu, par ko iet runa, te būs īstā adrese. "http://tvali.ge/tv/1_list.php?d=1440&playlistsize=60&logo=images/tvali_logo_small.gif". Tas ir playlist. Daži ir ejošie, daži vispār never, jo tāda lapa nepastāv. (mainīgais ir tas tv/1_list.php). Atverot Jūsu skriptu, man parāda error syntax error: invalid syntax. Ir kādi ieteikumi? Link to comment Share on other sites More sharing options...
bubu Marts 10, 2009 Share Marts 10, 2009 (labots) Gadījumā nenovilki 3.0 pitona versiju? Uz to neesmu testējis, tur ir diezgan daudz nesavietojamību, tāpēc pagaidām tādu nelietoju. Labots Marts 10, 2009 - bubu Link to comment Share on other sites More sharing options...
slamjaw Marts 10, 2009 Author Share Marts 10, 2009 Gadījumā nenovilki 3.0 pitona versiju? Uz to neesmu testējis, tur ir diezgan daudz nesavietojamību, tāpēc pagaidām tādu nelietoju. Man ir versija 3.1 Link to comment Share on other sites More sharing options...
bubu Marts 10, 2009 Share Marts 10, 2009 3.1 taču vēl ir alpha. Kāpēc cilvēkiem patīk lietot nestabilas un negatavas lietas... Velc 2.6 versiju. Ja nu ļoti gribās to 3.1, tad pamēģini print rindiņu pamainīt uz: print(x). Tā noteikti ir viena no nesavietojamībām, par citām nezinu. Link to comment Share on other sites More sharing options...
slamjaw Marts 10, 2009 Author Share Marts 10, 2009 ar versiju 2.6 man skriptu palaida. Uz melnā loga tiek uzskaitīti skaitļi no 1 līdz ..... neko nesaglabā un neko nerāda... arī man zināmie ejošie linki neuzrādas un nesaglabājas. kas varētu būt pa vainu? Mēģināšu paskaidrot konkrētāk, ko es īsti vēlos panākt. Es no visām šīm 100000 kombinācijām gribu atrast visas adreses, kuru atverot neuzrādas „404 NOT FOUND". Piemēram atverot šo, atveras lapa ar adresēm, bet šo, tiek paziņots, ka tā lapa nav atrasta (error 404). Tad nu man vajag saglabāt ADRESES tikai tām, kurām ir kautkāds saturs, ja ir error 404, tad viņu vienkārši ignorēt. Ceru ka sapratāt! Link to comment Share on other sites More sharing options...
bubu Marts 10, 2009 Share Marts 10, 2009 (labots) Ok, mana kļūda. Nezināju, ka urlopen nevar lietot ar with. Raksti šādi: from urllib import urlopen for x in xrange(2, 100000+1): print x try: url = urlopen("http://www.kautkas.lb/index_%s.php?logo_small.gif" % x) try: data = url.read() with open("output_%s.html" % x, "wb") as f: f.write(data) finally: url.close() except: pass Ja gribi tikai atrast numurus, kuri strādā, bet pašu failu saturs nav vajadzīgs, tad raksti šādi: from urllib import urlopen for x in xrange(2, 100000+1): ok = True try: try: url = urlopen("http://www.kautkas.lb/index_%s.php?logo_small.gif" % x) finally: url.close() except: ok = False if ok: print x Tas izdrukās tikai tos skaitļus, kuriem tas urlis verās vaļā. Potams, tas gan nestrādās, ja serveris atgriezīs 404 lapu arī "neeksistējošiem" urļiem. Tādā gadījumā nāksies skatīties atgrieztajos datos, vai tie ir "eksistējoši" vai nē. Labots Marts 10, 2009 - bubu Link to comment Share on other sites More sharing options...
slamjaw Marts 10, 2009 Author Share Marts 10, 2009 Ok, mana kļūda. Nezināju, ka urlopen nevar lietot ar with. Raksti šādi: from urllib import urlopen for x in xrange(2, 100000+1): print x try: url = urlopen("http://www.kautkas.lb/index_%s.php?logo_small.gif" % x) try: data = url.read() with open("output_%s.html" % x, "wb") as f: f.write(data) finally: url.close() except: pass Ja gribi tikai atrast numurus, kuri strādā, bet pašu failu saturs nav vajadzīgs, tad raksti šādi: from urllib import urlopen for x in xrange(2, 100000+1): ok = True try: try: url = urlopen("http://www.kautkas.lb/index_%s.php?logo_small.gif" % x) finally: url.close() except: ok = False if ok: print x Tas izdrukās tikai tos skaitļus, kuriem tas urlis verās vaļā. Potams, tas gan nestrādās, ja serveris atgriezīs 404 lapu arī "neeksistējošiem" urļiem. Tādā gadījumā nāksies skatīties atgrieztajos datos, vai tie ir "eksistējoši" vai nē. Radās neliela problēma! tagad, viņš visām adresēm, kurām nav saturu, rāda to 404 not found. Vai ir iespējams uzrakstīt skriptu tā: Ja atvērtās lapas TITLE ir "HTTP 404 Not Found", tad izlaizt ierakstīšanu, pretējā gadijumā parādīt piemēram "Links ir aktīvs"! Būtu ideāli, lai tos skaitļus varētu ierakstīt piemēram log.txt... Bet ja nevar... vienalga esi ļoti palīdzējis! Link to comment Share on other sites More sharing options...
bubu Marts 10, 2009 Share Marts 10, 2009 (labots) Protams, ka var. Un nevajag taisīt milzonīgas QUOTEs. Es savu postu varu izlasīt augstāk, nav tas jāquotē. from urllib import urlopen with open("log.txt", "w") as outf: for x in xrange(2, 100000+1): try: try: url = urlopen("http://www.kautkas.lb/index_%s.php?logo_small.gif" % x) data = url.read() if "HTTP 404 Not Found" not in data: print >>outf, x finally: url.close() except: pass Labots Marts 10, 2009 - bubu Link to comment Share on other sites More sharing options...
slamjaw Marts 10, 2009 Author Share Marts 10, 2009 Kautkas nav! Tagad skripts nerāda ejošos linkus! Es nomainīju adresi! Nevar tak būt, ka ielaidu šeit kļūdu! from urllib import urlopen</P> <P>with open("log.txt", "w") as outf: for x in xrange(1, 100000+1): try: try: url = urlopen("<A href="http://tvali.ge/tv/%s_list.php?d=1440&playlistsize=60&logo=images/tvali_logo_small.gif">http://tvali.ge/tv/%s_list.php?d=1440&playlistsize=60&logo=images/tvali_logo_small.gif</A>" % x) data = url.read() if "HTTP 404 Not Found" not in data: print >>outf, x finally: url.close() except: pass Link to comment Share on other sites More sharing options...
bubu Marts 10, 2009 Share Marts 10, 2009 (labots) Tev tur nav normāla adrese. Tev ir HTML <A> tags. Normāla adrese ir "http://serveris/ceļš/skripts?argumenti" formā. Un sākumā kautkādi nevajadzīgi <P> tagi ielikušies arī. Labots Marts 10, 2009 - bubu Link to comment Share on other sites More sharing options...
slamjaw Marts 10, 2009 Author Share Marts 10, 2009 Es to pamanīju!!! Kļūda kopējot! Vārdu sakot pieliec pie urlopen Šo adresi "http://tvali.ge/tv/%s_list.php?d=1440&playlistsize=60&logo=images/tvali_logo_small.gif". Man kautkā neiet! Link to comment Share on other sites More sharing options...
bubu Marts 10, 2009 Share Marts 10, 2009 Ko nozīmē "neiet"? Kādu kļūdu saka, ja jau neiet? Link to comment Share on other sites More sharing options...
slamjaw Marts 10, 2009 Author Share Marts 10, 2009 Da nē! uzskata arī ejošos linkus par neejošiem! Piemēram pirmais numurs ir ejošais, bet logos nav viņa! Link to comment Share on other sites More sharing options...
bubu Marts 10, 2009 Share Marts 10, 2009 Tas jau nozīmē, ka iet, tik nekorekti Un problēma ir tur, ka teici, ka jāmeklē "HTTP 404 Not Found", bet īstenībā neejošās lapas satur tikai "404 Not Found" tekstu. Link to comment Share on other sites More sharing options...
slamjaw Marts 10, 2009 Author Share Marts 10, 2009 Nu es īsti neredzu atšķirību . Es tik nesen sāku mācīties programmēšanu. :? Tā kā ceru, ka pārāk te neuzbāzos ar "Stulbiem jautājumiem". Ir kāda cita iespēja? Link to comment Share on other sites More sharing options...
bubu Marts 10, 2009 Share Marts 10, 2009 (labots) Tak šī pati iespēja der. Tik nomaini to stringu. Es jau nezināju kas tās tev par lapām - tu man pateici jāmeklē "HTTP 404 Not Found", es tādu kodu tev parādīju. Bet skripts nevienā lapā tādu stringu neatrada, jo tajā tāda nav! Jo vajadzēja meklēt "404 Not Found", kurš gan ir atrodams "neeksistējošos" urļos. Labots Marts 10, 2009 - bubu Link to comment Share on other sites More sharing options...
slamjaw Marts 10, 2009 Author Share Marts 10, 2009 Ja ir laiks, tad apskaties ŠO Lapu ar to 404 kodu. es visus iespējamos "stringus" izmēģināju, bet bez rezultāta. Link to comment Share on other sites More sharing options...
bubu Marts 10, 2009 Share Marts 10, 2009 Nu tur ir tas "404 Not Found". Es to ieliku kodā un man iet, tb skaitlim 2 neuzrāda šo linku kā derīgu. Link to comment Share on other sites More sharing options...
slamjaw Marts 10, 2009 Author Share Marts 10, 2009 Pamēģini sākt ar skaitli 1 vai 955. Tie noteikti ir ejošie. Man liekas, ka kautkas ar kodu nav kārtībā... Link to comment Share on other sites More sharing options...
bubu Marts 10, 2009 Share Marts 10, 2009 Skaitot no 1 man ejošos uzrāda tik šos: 829 846 859 877 901 ...utt Link to comment Share on other sites More sharing options...
slamjaw Marts 10, 2009 Author Share Marts 10, 2009 Izkatās, ka tā varētu arī būt... Tu varētu pilnu savu kodu te ielikt? Link to comment Share on other sites More sharing options...
bubu Marts 10, 2009 Share Marts 10, 2009 Es visu laiku saku - tas ir tieši tāds kā #17 postā, tik tas HTTP 404 strings nomainīts bez HTTP priekšā. Link to comment Share on other sites More sharing options...
slamjaw Marts 10, 2009 Author Share Marts 10, 2009 Palaidīšu skriptu no sākuma līdz beigām, un tad skatīšos, kas ir kā!!! MILZONĪGS TEV PALDIES!!! Viss ir tieši tā, ka man vajag... Link to comment Share on other sites More sharing options...
Recommended Posts
Izveido kontu, vai pieraksties esošajā, lai komentētu
Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas
Izveidot jaunu kontu
Piereģistrējies un izveido jaunu kontu, tas būs viegli!
Reģistrēt jaunu kontuPierakstīties
Jums jau ir konts? Pierakstieties tajā šeit!
Pierakstīties tagad!