PDA

View Full Version : کار با urllib3



saeed7474
جمعه 26 دی 1393, 10:54 صبح
سلام
وقت بخير دوستان با ىو ار ال ليب 3 چطور مىشه با یک صفحه ارتباط برقرار کرد تصاوىر ىک صفحه وب رو رو استخراج کرد؟
همچنىن ورژن 2 رو دارىن؟

Matplotlib
جمعه 26 دی 1393, 13:08 عصر
من با نسخه 2 کار میکنم کلا (یعنی نمیدونم چه تفییراتی در 3 داده شده) . فکر میکنم این کد کارتون رو راه بندازه:

import urllib2
import re
from os.path import basename
from urlparse import urlsplit

url = "http://www.avayequran.ir/"
urlContent = urllib2.urlopen(url).read()
imgUrls = re.findall('img .*?src="(.*?)"', urlContent)

for imgUrl in imgUrls:
try:
imgData = urllib2.urlopen(imgUrl).read()
fileName = basename(urlsplit(imgUrl)[2])
output = open(fileName,'wb')
output.write(imgData)
output.close()
except:
pass
کد رو ران کنید و منتظر باشد تو همون پوشه ای که ران کردید عکس ها باید لود بشند (کمی طول میکشه)
اگر قسمتی از کد نامفهوم بود بفرمایید. البته سعی کنید همیشه خودتون تلاشی بکنید و کد ناقص هم اگر نوشتید همونو تو تاپیک بذارید تا بهتر کمک بشه و فهمش برای خودتونم راحتتر باشه.

saeed7474
جمعه 26 دی 1393, 13:36 عصر
من با نسخه 2 کار میکنم کلا (یعنی نمیدونم چه تفییراتی در 3 داده شده) . فکر میکنم این کد کارتون رو راه بندازه:

import urllib2
import re
from os.path import basename
from urlparse import urlsplit

url = "http://www.avayequran.ir/"
urlContent = urllib2.urlopen(url).read()
imgUrls = re.findall('img .*?src="(.*?)"', urlContent)

for imgUrl in imgUrls:
try:
imgData = urllib2.urlopen(imgUrl).read()
fileName = basename(urlsplit(imgUrl)[2])
output = open(fileName,'wb')
output.write(imgData)
output.close()
except:
pass
کد رو ران کنید و منتظر باشد تو همون پوشه ای که ران کردید عکس ها باید لود بشند (کمی طول میکشه)
اگر قسمتی از مد نامفهوم بوذ بفرمایید. البته سعی کنید همیشه خودتون تلاشی بکنید و کد ناقص هم اگر نوشتید همونو تو تاپیک بذارید تا بهتر کمک بشه و فهمش برای خودتونم راحتتر باشه.

ممنونم ازتون ولی urllib2 دانلود نمیشه از pipy نیستش :متفکر:
لطفا اگه کتابخانه اش رو دارین اینجا پیوست کنید

Matplotlib
جمعه 26 دی 1393, 13:41 عصر
میخواید روی پایتون 3 کار کنید؟

بینید با این کد درست میشه؟


import urllib.request as urllib2

به جای import urllib2 توی کد اصلی.

saeed7474
جمعه 26 دی 1393, 13:44 عصر
بله روی پایتون 3.4
نه کلا کتابخانه urllib2 دانلود نمیشه که بشه ایمپورت کرد

Matplotlib
جمعه 26 دی 1393, 13:47 عصر
آخه این لایبرری با خود پایتون میاد. این لینک رو مطالعه کنید:

http://stackoverflow.com/questions/6594620/python-3-2-unable-to-import-urllib2-importerror-no-module-named-urllib2

saeed7474
جمعه 26 دی 1393, 14:01 عصر
آخه این لایبرری با خود پایتون میاد. این لینک رو مطالعه کنید:

http://stackoverflow.com/questions/6594620/python-3-2-unable-to-import-urllib2-importerror-no-module-named-urllib2

چه جالب! مثل اینکه با همین دستوری که فرمودین باز شد.
نمی دونستم تو پایتون 3 هم این کتابخانه هست
متشکر

saeed7474
جمعه 26 دی 1393, 14:05 عصر
این ارور مربوط به چی هست ؟
IndentationError: expected an indented block
برای خط :

url = "http://www.google.com"
میاد:متفکر:

Matplotlib
جمعه 26 دی 1393, 14:09 عصر
Indentation رعایت نشده. یعنی 4 اسپیس فاصله یا یک تب.
این اررور خیلی مقدماتی هست و باید بدونید در پایتون Indentation بسیار مهم هست و باید رعایت کنید.

اگر کدتون بعد از حلقه ها(نظیر if,while,...) هست باید فاصله داده بشن اگر بعد از try هست باید فاصله داده بشن و ....
اگر مشکلی دارید راحع ب این قضیه به نظرم ابتدا کتابها و مقالات مقدماتی پایتون رو مطالعه کنید.

saeed7474
جمعه 26 دی 1393, 14:12 عصر
Indentation رعایت نشده. یعنی 4 اسپیس فاصله یا یک تب.
این اررور خیلی مقدماتی هست و باید بدونید در پایتون Indentation بسیار مهم هست و باید رعایت کنید.

اگر کدتون بعد از حلقه ها(نظیر if,while,...) هست باید فاصله داده بشن اگر بعد از try هست باید فاصله داده بشن و ....
اگر مشکلی دارید راحع ب این قضیه به نظرم ابتدا کتابها و مقالات مقدماتی پایتون رو مطالعه کنید.

خیر رعایت شده
اینجایی که بنده کد رو نوشتم اصلا ربطی به کنگره گذاری نداره
:ناراحت:

Matplotlib
جمعه 26 دی 1393, 14:23 عصر
اگر امکانش هست کدی که تاا لان نوشتید رو خصوصی بفرستید برام