Python - Пајтон

Член од
4 февруари 2009
Мислења
7.733
Поени од реакции
7.549
Може ли некој да ми помогне или пак да ми даде добар туторијал за функциите и можностите за комуницирање со веб сајтови и апликации преку Питон.
Целта ми е да пробам да направам аутоматизирани скрипти, знам програмирање, можам да кажам дека с++ го владеам, и поднаучив питон, но кога се работи за веб скрипти, воопшто не сум искусен.
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Хмм... поточно во кој смисол за комуницирање со веб сајтови ?

Нешто од типот на веб сервиси, кравлери, ботови и слично или пак мислиш буквално за сајтови пишувани во Python ?

Како и да е, за она првото, тешко дека би можел дирекно да удриш на веб сервиси и слично без претходно да ги знаеш барем основите на Python, а за она второто можеш со CGI, PSP и како друга опција ти е да користиш некоја готова платформа како на пример Django или нешто слично, само претходно ќе треба да го конфигурираш серверот такашто ќе му инсталираш и лоадираш mod_python модул и ќе му додадеш хендлер за Python.
E сега да не зборам на празно, ако не ти е мука пиши на што точно мислеше и да би можал да ти прецизирам со одговорот. :)

Уз пут ѕирни ја стандардната библиотека на Python. :)
 
Член од
4 февруари 2009
Мислења
7.733
Поени од реакции
7.549
Нешто од типот на веб сервиси, кравлери, ботови?
Токму така.
Пробав да најдам некој специфичен туторијал, но сите се за креирање на веб страна а не за тоа што ми треба.
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Вака сега, за можностите на Python за комуникација со сајтови... Python е одличен за тие работи зашто што има добра стандардна библиотека и ти овозможува голема слобода во кодот, ама ипак моето искуство вели дека Perl е убедливо најдобар за комуницирање со веб сајтови, само што Perl има ужасна синтакса (one-write language).

Како и да е, за веб сервисите односно SOAP, WSDL и слични протоколи:
Python Web Services Wiki
Python Web Services Project
SOAPy Library
...е сега ако си почетник во овие работи можеби ова ќе ти биде малце сложено затоа што за сите овие работи пред се бараат предзнаење и на други технологии за да би можел истите да ги користиш.

Како нешто „полесна“ варијанта ти се кравлерите, ботовите, спајдерите или како сакаш наречи ги... За нив како основна библиотека ти е urllib2 (односно во Python 3.* е urllib.request).

Значи за да превземеш сорс код од некој сајт вака би изгледал кодот:

Код:
import sys

# Оваа техника се користи за апликацијата да биде комбитабилна и со 2.* и со 3.* верзијата,
доколку верзијата е 2.* urlopen го импортираш од urllib2, доколку е друга верзија тогаш urlopen го импортираш од urllib.request
if sys.version[0] == "2":
    from urllib2 import urlopen
else:
    from urllib.request import urlopen

try:
    html = urlopen("http://www.google.com/").read()
    print (html) # Печатење на сорс кодот од сајтот
except Exception as ex:
    print (ex)
...e сега, откако ќе го собереш сорсот следни чекори ти се обработка на истиот, тоа можеш да го направиш во зависност од потребите, доколку сакаш да направиш кравлер од типот на GoogleBot ја користиш библиотеката HTMLParser, преку неа ги хендлаш таховите само имај во предвит дека HTML код баш и неможеш да обработуваш со RegEx затоа што RegEx служи само за регуларен текст, а HTML не е регуларен текст од друга страна пак и самиот сајт треба да биде HTML валиден, во спротивно ќе добиваш рандом глупости.
Покрај овие ствари ги имаш и библиотеките xml.dom.minidom и json.

Е сега, моја препорака ти е да почнеш со urllib2 (urllib.request), да собираш сорс од сајтовите и да пробаш да го обработиш текстот (пример да ги одвоиш само линковите, да го одвоиш само екстерните линкови, да го одвоиш само сликите и слично), па понатака ќе пробаш со нешто посложено (логирање на сајтови, парсирање форми, колачиња и слично).

Уз пут да искористам прилика, покрај GoogleSuggest модулот, пишав уште еден, станува збор за BitLyClient Library кој служи за кратење на долгите линковиите преку Bit.ly веб сервисот и да се пофалам дека истата библиотека случајно или намерно ми се најде во базата на Softpedia.com во софтверски програми за Linux. :)

--- надополнето ---

...
П.С.
Нема ваљда SkyDriver да се лути што рекламирам perl на негова тема =)
Код:
use strict;
use WWW::Mechanize;
use HTTP::Cookies;
d[*.*]b
 
Член од
4 февруари 2009
Мислења
7.733
Поени од реакции
7.549
Фала, супер објаснето.
За почеток, ќе си играм малку со urllib2 модулот, и ќе пробам основни работи, на пример логирање на сајт или читање одреден текст од ХТМЛ кодот.
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Фала, супер објаснето.
За почеток, ќе си играм малку со urllib2 модулот, и ќе пробам основни работи, на пример логирање на сајт или читање одреден текст од ХТМЛ кодот.
Логирање на сајтови ќе ти биде малце покомплицирано.

За тоа ти треба парсирање на форми, колачиња, POST/GET методи, HTTP или HTTPS протокол и слични дрангулии, за тие ствари ги имаш овие библиотеки од стандардната Python библиотека:

urllib
cookielib
httplib

Значи овие се како основни библиотеки, покрај овие имаш и други библиотеки, методи, техники и слично, ама се во свое време. :)

Исто така еве ти и еден пример како да се логираш на сајт кој не користи SSL протокол:
Код:
import urllib, urllib2, cookielib

usr = "tvojot_juzer"
pwd = "tvojot_pass"

data = ""

# Тука ќе го пишеш линкот од action
login_url = ""
# Тука линкот од сајтот односно линкот кој што
сакаш да го прелисташ откако ќе се логираш
home_url = ""

try:
    cj = cookielib.CookieJar()
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
    # username и password промени ги во името на HTML текст боксовите
    l_data = urllib.urlencode({"username" : usr, "password" : pwd})
    opener.open(login_url, l_data)
    results = opener.open(home_url)

    for tmp in results.readlines():
        data = data + tmp
except Exception as ex:
    print ex

# Во „data“ ти е сместен стрингот односно HTML страната
# од страната која што сакаш да ја прелисташ
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Еве ви еден RSS Reader :)

RssLib Library

Тестирана е само на Windows со Python 2.7 верзија, ама креирана е да е компитабилна со сите оперативни системи и со сите верзии на Python. :)
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Бидејки Python во новата верзија 3.* направи драстични промени во ствојата стандардна библиотека (имиња на библиотеки/фунцкии, команди, циклуси и слично), голем број Python корисници мака мачат со компитабилноста на ствојот код, особено кога станува збор за помасовни библиотеки/апликации, па затоа се одлучив да ја споделам 2to3 библиотеката која исто така е дел од стандардната библиотека односно доаѓа заедно во пакет со инсталацијата на интерпретерот.

Да не пишувам реферати, на кратко ќе кажам дека 2to3 библиотеката служи за конвертирање на кодот од верзија 2.* во верзија 3.*.
Повеќе детали можете да прочитате на официјалниот сајт во документацијата за 2to3 библиотеката.

Едит: Заборавив да наведам еден биден дел, како што пишуваат на официјалниот сајт во документацијата, оваа библиотека неможе да се смета за стабилна и изложена е на драстични промени во иднина.

______________________________________________


Ќе ја искористам приликата и да ја споделам Dive Into Python е-книгата.
Одлична книга за оние што сакаат да го научат Python програмскиот јазик (пожено е претходно да се има некое си познавање од основите на програмирањето), истата можете да ја купите во печатен примерок, да ја читате онлајн или пак да ја симнете во некој друг формат. Исто така книгата е достапна во неколку јазици (не и Македонски). :)
 
Член од
10 јануари 2011
Мислења
124
Поени од реакции
3
приметувам обично кога прикачувате книги за програмирање напоменувате дека ја нема на македонски јазик. а јас би ве прашал сите, која книга за програмирање е на македонски јазик освен да не е некоја од приватниве факултети пошо тие ради реда ги прават колку да им земат пари на студентите...
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Колку што јас сум информиран, владата (или министерството за образование) на почетокот на оваа учебна година имаше презентација на книги од областа на ИТ (програмирање, мрежи, оперативни, безбедност...) во ФЕИТ (не ми текнува точно како се викаше проектот/презентацијата), таму наводно беа презентирани странски „познати“ книги преведени на македонски. Е сега повеќе детали за ова би можел да каже некој кој присуствувал на презентацијата (или пак кој е подетално информиран околу ова), али јас колку што наслушнав биле прилично „некорисни“, ужасно делувало сето тоа на македонски јазик.

Кога сме кај оваа проблематика, книги на македонски нема затоа што нема организации поврзани со ИТ односно организации има, ама слабо се фокусирани на „пишување/преведување книги на македонски“, претежно се работи со странски книги/API-ја, добро е што локализацијата не е запоставена. :)

Иначе ова се должи претпоставувам на слабите финансии во ИТ, луѓето кои се професионалци (да не речам со статус „доктор“), спремни да напишат/преведат добра книга не би се нафатиле да го работат истото за беспари, а пак останатите претежно прават некаков обид, ама сето тоа завршува неславно и книгата пропаѓа во вода. :)

--- надополнето ---

Едит: Да се надополнам со горенаведеното, еве повеќе детали за преведените книги.
Еве ја и презентацијата од промоцијата на книгите.
 
Член од
10 јануари 2011
Мислења
124
Поени од реакции
3
а дали знаеш дека сепак плаќаат за пишување на тие книги? башка не треба владата да биде иницијатор да се напише книга за информатичката наука. тоа е исто како да каже венко андоновски дека чекал од владата да ја напише „папокот на светот“. поентата ми беше друга и ќе ја кажам најкратко: дали постои некој кој може да напише книга, без разлика дали е превод или личен труд?

моја претпоставка зошто не преведуваат книги нашиве професори или „доктори“ по информатика како што ги викаш ти: толку се добри, не сакаат да се омаловажуваат со нечиј друг труд (тоа е во ред), но зошто тогаш не седнат и не се потрудат да напишат некоја своја книга!? јас само ги знам оние на симе арсеновски за office ли беа!? :pos: демоде!!! компјутериве отидоа до таму да притискаме на мониторот со раце, а ние уште ќе читаме некое книгиче од 1993.:nesvest:

срамота е правиме факултети, а немаме никаква литература. на своја иницијатива не се нафаќаат професорите да направат книга, а после тоа студентите не чинеле. они што сакаат? студентите преку семинарски трудови да им ја напишат книгата? прашајте го венко како ја напишал легендарната „папокот на светот“???-->http://preminportal.com.mk/content/view/1817/59/

O'Reilly имаат еден тон книги, а ние немаме ниту една преведена! србите на пример редовоно си ги работат книгите, односно редовно ги преведуваат. погледнете колку е голема колекцијата на O'Reilly -->http://oreilly.com/ebooks/





Колку што јас сум информиран, владата (или министерството за образование) на почетокот на оваа учебна година имаше презентација на книги од областа на ИТ (програмирање, мрежи, оперативни, безбедност...) во ФЕИТ (не ми текнува точно како се викаше проектот/презентацијата), таму наводно беа презентирани странски „познати“ книги преведени на македонски. Е сега повеќе детали за ова би можел да каже некој кој присуствувал на презентацијата (или пак кој е подетално информиран околу ова), али јас колку што наслушнав биле прилично „некорисни“, ужасно делувало сето тоа на македонски јазик.

Кога сме кај оваа проблематика, книги на македонски нема затоа што нема организации поврзани со ИТ односно организации има, ама слабо се фокусирани на „пишување/преведување книги на македонски“, претежно се работи со странски книги/API-ја, добро е што локализацијата не е запоставена. :)

Иначе ова се должи претпоставувам на слабите финансии во ИТ, луѓето кои се професионалци (да не речам со статус „доктор“), спремни да напишат/преведат добра книга не би се нафатиле да го работат истото за беспари, а пак останатите претежно прават некаков обид, ама сето тоа завршува неславно и книгата пропаѓа во вода. :)

--- надополнето ---

Едит: Да се надополнам со горенаведеното, еве повеќе детали за преведените книги.
Еве ја и презентацијата од промоцијата на книгите.
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Доколку има некој кој што го користи веб сервисот на 0.mk еве им еден модул и во Python.

Download use0mk module.

Инсталацијата е стандардна:
python setup.py install
Детали за класата:
IDLE 2.6.5 ==== No Subprocess ====
>>> import use0mk
>>> help(use0mk.use0mk)
Help on class use0mk in module use0mk:

class use0mk(__builtin__.object)
| Class use0mk
| Class based on 0.mk API Documentation (http://0.mk/api)
|
| Methods defined here:
|
| __del__(self)
| Object destructor
|
| __init__(self, user=None, apikey=None)
| Object constructor
| @param user (string) - The 0.mk username
| @param apikey (string) - The 0.mk user's apikey
|
| previewUrl(self, link)
| Preview the shortened link
| @param link (string) - The short URL
| @return dict filled with the results
|
| shortenUrl(self, link)
| Shortening a long link
| @param link (string) - The long URL for shortening
| @return dict filled with the results
|
| ----------------------------------------------------------------------
| Data descriptors defined here:
|
| __dict__
| dictionary for instance variables (if defined)
|
| __weakref__
| list of weak references to the object (if defined)

>>>
Едит: Модулов е бета верзија, го пишував да работи на сите верзии на Python (2.* >) и на сите оперативни, моментално имам само Linux, тестиран е само на Linux со Pyrhon (2.6.5), доколку некој го користи и наиде на некоја рандом глупост, може слободно да ми пише. :)
 

pepix

PepiX
Член од
9 декември 2009
Мислења
48
Поени од реакции
0
Дали некој може да ми помогне околу скриптата која ја инсталирав на fb.mk?

Потребна ми е помош да се допише код кој ќе овозможи покрај генерирање на наслов и опис да може да генерира слика секој артикл како на почетната така и на отворениот артикл...Благодарам однапред

Доколку некој сака да помогне ке му го пратам тој фајл artcle.php
 

Kajgana Shop

На врв Bottom