jython - г django-той ашиглах?

89 views
Skip to first unread message

pdeegii

unread,
Jun 21, 2011, 12:07:20 AM6/21/11
to Пайтончдын клуб
django project дээр htmlunit - г ашиглах шаардлага гараад jython - р
дамжуулан ашиглах талаар нэлээд гүүглэдлээ. Уул нь бол ажиллаж л
байгаа гэхдээ энэ шийдэл надад таалагдахгүй байгаа юм /шийдлийг доор
хавсаргав/. jython - г оруулж ирээд жава-г ажиллуулах боломж пайтон
эсвэл джанго-д байгаа болов уу?

#jython - р htmlunit-г ашигласан кодыг ажиллуулах функц
def foo(request):
import os
import codecs
url = "http://example.com/"

# энэ дээр бүр терминалаас комманд өгч байгаа юм шиг ажиллуулж
байгаа юм.Энэ л таалагдахгүй байна.
os.system(settings.CRW_JYTHON_PATH+'jython '+settings.PATH+'apps/
bar/htmlunit.py "' + url + '"')

f = codecs.open(settings.PATH+'apps/bar/example.html',
encoding='utf-8', mode='r')
res = f.read()
f.close()
return HttpResponse(res)

# htmlunit.py file-n source
# -*- coding: utf-8 -*-
import codecs
import sys
import os
sys.path.append('/'.join(os.path.abspath(os.path.dirname(__file__)).split("/")
[:-3]))
from FooProject import settings

def main():
hlibs = ['apache-mime4j-0.6.jar',
'commons-codec-1.4.jar',
'commons-collections-3.2.1.jar',
'commons-io-1.4.jar',
'commons-lang-2.4.jar',
'commons-logging-1.1.1.jar',
'cssparser-0.9.5.jar',
'htmlunit-2.8.jar',
'htmlunit-core-js-2.8.jar',
'httpclient-4.0.1.jar',
'httpcore-4.0.1.jar',
'httpmime-4.0.1.jar',
'nekohtml-1.9.14.jar',
'sac-1.3.jar',
'serializer-2.7.1.jar',
'xalan-2.7.1.jar',
'xercesImpl-2.9.1.jar',
'xml-apis-1.3.04.jar']

for l in hlibs:
sys.path.append(settings.CRW_HTMLUNIT_PATH+'lib/'+l)
import com.gargoylesoftware.htmlunit.WebClient as WebClient
import com.gargoylesoftware.htmlunit.BrowserVersion as
BrowserVersion

url = sys.argv[1]
url = url.replace("?_escaped_fragment_=","#!")
webclient = WebClient(BrowserVersion.FIREFOX_3_6) # creating a new
webclient object.
page = webclient.getPage(url) # getting the url
webclient.waitForBackgroundJavaScript(2000);
#for s in page.getByXPath("/html/head/script[@type='text/
javascript']"):
# s.remove()

f = codecs.open(settings.PATH+'apps/web/crw.html',
encoding='utf-8', mode='w')
f.write(page.asXml())
f.close()

if __name__ == '__main__':
main()


Энийг ингэж тусад комманд өгч байгаа юм шиг бишээр sys.path - даа
jython - г нэмээд ч юм уу, арай өөрөө шийдэж болох болов уу?

Баярлалаа.

Хүндэтгэсэн
П.Дэлгэрмөрөн

DULMANDAKH Sukhbaatar

unread,
Jun 21, 2011, 4:50:31 AM6/21/11
to pyc...@googlegroups.com
миний ойлгосноор Jython ашиглаад Python бас Java хэлний аль алины
бичиглэл, сангуудыг ашиглах боломжтой болох юм билээ. Гэхдээ C
суурьтай Python сангууд ажиллахгүй.

htmlunit чинь зүгээр л вэб тестлэх сан юм биш үү? тэгэхээр django-той
холих шаардлага байгаа юм уу? зүгээр л тус тусад нь бичээд ажиллуулж
болох юм шиг санагдах юм.

--
Regards
Dulmandakh
http://www.dulmandakh.com
http://www.twitter.com/dulmandakh/
http://www.facebook.com/dulmandakh

Delgermurun Purevkhuu

unread,
Jun 22, 2011, 8:04:47 AM6/22/11
to pyc...@googlegroups.com
On 06/21/2011 03:50 PM, DULMANDAKH Sukhbaatar wrote:
> миний ойлгосноор Jython ашиглаад Python бас Java хэлний аль алины
> бичиглэл, сангуудыг ашиглах боломжтой болох юм билээ. Гэхдээ C
> суурьтай Python сангууд ажиллахгүй.
>
> htmlunit чинь зүгээр л вэб тестлэх сан юм биш үү? тэгэхээр django-той
> холих шаардлага байгаа юм уу? зүгээр л тус тусад нь бичээд ажиллуулж
> болох юм шиг санагдах юм.
>
htmlunit - г ашиглаж "гүүглэ ажакс crawler" хийх гэж байгаа юм.

DULMANDAKH Sukhbaatar

unread,
Jun 22, 2011, 8:48:33 PM6/22/11
to pyc...@googlegroups.com
> htmlunit - г ашиглаж "гүүглэ ажакс crawler" хийх гэж байгаа юм.

хм, тэгвэл django-той холбох ямар хэрэг байгаа юм бэ? crawler-ийг нь
java дээр хийчихэд болох юм биш үү? энд django-той холбох ямар хэрэг
байгааг нэг л харахгүй байна.

Ankhbayar Lhagvadorj

unread,
Jun 23, 2011, 12:12:12 AM6/23/11
to pyc...@googlegroups.com
Сайн уу. 
Web Robot хийх гэж байгаа гэж ойлголоо. 
Python ийг дангаар нь ашиглуул зүгээр юм биш үү. 
Crawler хийх зориулалт бүхий сангуул нэлээд байгаа. Өөрөө хийсэн ч болохоор ш дээ. 
Jython ийг би сайн мэдэхгүй болхоор буруу ярьсан бол Sorry. 


2011/6/22 Delgermurun Purevkhuu <pdelge...@gmail.com>



--
Хүндэтгэсэн Анхбаяр

Delgermurun Purevkhuu

unread,
Jun 23, 2011, 12:56:52 AM6/23/11
to pyc...@googlegroups.com
Хамгийн гол асуудал нь ажакс контентийг crawl хийх байгаа юм. Тэгэхийн тулд htmlunit-г ашиглаж байгаан, python-гийн тийм програм сан хайгаад олсонгүй.

Delgermurun Purevkhuu

unread,
Jun 23, 2011, 1:02:31 AM6/23/11
to pyc...@googlegroups.com
On 06/23/2011 07:48 AM, DULMANDAKH Sukhbaatar wrote:
>> htmlunit - г ашиглаж "гүүглэ ажакс crawler" хийх гэж байгаа юм.
> хм, тэгвэл django-той холбох ямар хэрэг байгаа юм бэ? crawler-ийг нь
> java дээр хийчихэд болох юм биш үү? энд django-той холбох ямар хэрэг
> байгааг нэг л харахгүй байна.
>
>
Нэг домайн дээр тэгж байгаа вэбийг гүүглэ ороод ирэнгүүт жавагаар, үгүй
бол django-р хүсэлтийг нь боловсруулж болох уу?

http://example.com/?_escaped_fragment_=/ - ийм хүсэлт
/_escaped_fragment_ : гэсэн parametertei / орж ирэхээр нь л crawler
ажиллуулах гээд л байгаан

DULMANDAKH Sukhbaatar

unread,
Jun 23, 2011, 2:10:07 AM6/23/11
to pyc...@googlegroups.com
> Хамгийн гол асуудал нь ажакс контентийг crawl хийх байгаа юм. Тэгэхийн тулд
> htmlunit-г ашиглаж байгаан, python-гийн тийм програм сан хайгаад олсонгүй.

харин тийм. тэгээд django-той холбох шаардлага байхгүй юм шиг санагдаж
байна. htmlunit чинь ажиллаад бааз руу юмаа чихнэ, django уншиж
үзүүлнэ. ингээд л болох биш үү?

http://www.getwindmill.com/ гээд python дээр бичигдсэн вэб тест хийдэг
програм байна, товч танилцуулгаар бол ajax дэмждэг гэж байна. ашиглаж
байгаагүй.

Ankhbayar Lhagvadorj

unread,
Jun 23, 2011, 2:28:56 AM6/23/11
to pyc...@googlegroups.com
urllib3 гээд сан ашиглавал асуудалыг шийдэж болмоор санагдлаа. 
Гэхдээ Ерөнхий байдалаар шийдвэрлэнэ гэвэл хэцүү байх. 
AJAX request үүдийг бол шидээд хариуг нь авч байна. 
Харин хааш нь яаж шидэх вэ гэдэгээ л олох гэж вэбийн JS үүдийг анализ хийх хэрэгтэй болох байх :(

sudo easy_install urllib3


2011/6/23 DULMANDAKH Sukhbaatar <dulma...@gmail.com>



--
Хүндэтгэсэн Анхбаяр

Khaschuluu Munkhbayar

unread,
Jun 23, 2011, 10:24:46 AM6/23/11
to pyc...@googlegroups.com
Crawler гэж юу юм бэ? Өнгөцөөр бол бот ашиглаад нэгдсэн мээдээлэл цуглуулах гэж ойлголоо.

Хэрвээ тийм бол python дээр urllib болохгүй гэж үү?

Delgermurun Purevkhuu

unread,
Jun 23, 2011, 9:56:08 AM6/23/11
to pyc...@googlegroups.com
On 06/23/2011 01:10 PM, DULMANDAKH Sukhbaatar wrote:
>> Хамгийн гол асуудал нь ажакс контентийг crawl хийх байгаа юм. Тэгэхийн тулд
>> htmlunit-г ашиглаж байгаан, python-гийн тийм програм сан хайгаад олсонгүй.
> харин тийм. тэгээд django-той холбох шаардлага байхгүй юм шиг санагдаж
> байна. htmlunit чинь ажиллаад бааз руу юмаа чихнэ, django уншиж
> үзүүлнэ. ингээд л болох биш үү?
>
> http://www.getwindmill.com/ гээд python дээр бичигдсэн вэб тест хийдэг
> програм байна, товч танилцуулгаар бол ajax дэмждэг гэж байна. ашиглаж
> байгаагүй.
>
>
>
Bayarlalaa

Delgermurun Purevkhuu

unread,
Jun 23, 2011, 9:53:40 AM6/23/11
to pyc...@googlegroups.com
Bayarlalaa.

Delgermurun Purevkhuu

unread,
Jun 23, 2011, 9:55:52 AM6/23/11
to pyc...@googlegroups.com
On 06/23/2011 01:28 PM, Ankhbayar Lhagvadorj wrote:
Bayarlalaa.

Dolugen B

unread,
Jun 23, 2011, 12:42:52 PM6/23/11
to pyc...@googlegroups.com
htmlunit - г ашиглаж "гүүглэ ажакс crawler" хийх гэж байгаа юм.

Мөлхөгч, аалз гэх мэтийг бичихэд хэрэглэж болох Scrapy гэж фрэймворк байдаг. Ерөнхий зохион байгуулалт нь Жанготой их төстэй. Энд бичсэнээр бол Аяаксыг шүүрдэж болдог гэсэн байна.

--
Hundetgesen,
Dolugen.

Delgermurun Purevkhuu

unread,
Jun 24, 2011, 12:08:46 AM6/24/11
to pyc...@googlegroups.com
Google bot хуудас индекслэхгээд ороод ирэхэд ажакс мэдээллүүд
индекслэгддэггүй. Бүтэн ажакс сайтыг индекслүүлэхийн тулд
http://code.google.com/web/ajaxcrawling/docs/getting-started.html үүнийг
дагах хэрэгтэй болоод байгаа юм.

Delgermurun Purevkhuu

unread,
Jun 24, 2011, 12:09:39 AM6/24/11
to pyc...@googlegroups.com
Баярлалаа. Туршаад үзье.
Reply all
Reply to author
Forward
0 new messages