from urllib import urlopen
page = urlopen("http://www.python.com")
text = page.read( )
print text
|
الحزمه urllib هي التي تقدم أدوات للتعامل مع صفحات الويب
الذي يهمنا الأن هو ( )urlopen لذلك قمت باستدعائه من urllib
( )urlopen هي التي تقوم بفتح صفحة ويب لذلك يتم اسند اسم الموقع اليها
هنا قمت باسنادها الي المتغير page حيث يمكن الأن التعامل معه كملف لقراة المعلومات منه
الأن يمكنك استعمال ( )read لقراة كامل الملف أو ( )readline لقراة سطر واحد أو ( )readlines لقراة كامل الملف في List
ويمكنك قراة عدد معين من الحروف باضافة رقم مثلا لقراة السبع الحروف الأولي ( 7 )read
هنا قمت باستعمال ( )read لقراة كامل الملف و اسنادها الي المتغير text لطابعته
##########################################
# يمكن اختصار الكود السابق الي ثلاثة أسطر وحتي الي سطرين #
##########################################
from urllib import urlopen
text = urlopen("http://www.python.com").read( )
print text
|
from urllib import urlopen
print urlopen("http://www.python.com").read( )
|
from urllib import urlretrieve
urlretrieve("http://www.python.com","C:\\python_Homepage.html")
|
بوسطة ( )urlretrieve يمكنك حفظ صفحة ويب باسناد اسم الموقع ثم فاصله , ثم المكان الذي تريد حفظ الملف فيه
"لاحظ أني قمت بوضع اثنين من ال backslash في ال قيمة الثانية لان backslash واحدة لها معني معين في python"
أو يمكنك استخدام طريقة أخري اذا كنت تريد حفظ صفحة ويب و استخراج معلومات منها
from urllib import urlopen
page = urlopen("http://www.python.com").read( )
mypage=open("python_homepage.htm","w")
mypage.write(page)
mypage.close( )
|
فتح الصفحه كملف و اسناده ال متغير page
ثم استخدام ( )open لفتح ملف والكتابه فيه
يتم اسناد قيمتين الي ( )open الأولي اسم الملف و امتداده والثانية النمط ( للقرأة "r" أو للكتابه "w" )
ثم نستخدم ( )write للكتابة الي الملف ونسند اليها المتغير page وهو عبارة عن محتويات الصفحه التي تم فتحها
ثم أخيرا اغلاق الملف بواسطة ( )close
from HTMLParser import HTMLParser
from urllib import urlopen
class linkParser(HTMLParser):
def handle_starttag(self, tag, attrs):
if tag == "a":
for name,value in attrs:
if name == "href":
print value
P = linkParser()
P.feed(urlopen("http://python.com").read( ))
P.close()
|
الحزمة HTMLParser تقدم أدوات للمعالجة صفحات Html
الحزمة HTMLParser تحتوي علي class تسمي HTMLParser
لذلك نقوم باستدعاء HTMLParser من الحزمة HTMLParser
أول خطوة هي بدأ class جديدة وهي linkParser وستكون مبنية علي HTMLParser
ثم استعمال الدالة ( )handle_starttag التي تتعامل مع وسوم البداية لطباعة كل قيم "href" للجميع أوسمة a يعني (جميع الروابط).
ثم لكي تستعمل ( )linkParser هناك 3 خطوات رئيسية
p = HTMLParser( )
p.feed(data)
...
p.close( )
|
الخطوة الأولي تعريف Object من ( )linkParser و اسناده الي متغير p
الخطوة الثانية هي تلقيم صفحة الويب لي p بواسطة ( )feed
الخطوة الثلاثة الاغلاق بواسطة ( )close
في الخطوة 2 نقوم بتلقيم صفحة الويب عن طريق ( )urlopen( ).read
from HTMLParser import HTMLParser
from urllib import urlopen
class linkParser(HTMLParser):
def handle_starttag(self, tag, attrs):
if tag == "a":
for name,value in attrs:
if name == "href":
print value
if tag == "img":
for name,value in attrs:
if name == "src":
print value
P = linkParser( )
P.feed(urlopen("http://python.com").read( ))
P.close( )
|
لأستخرج الصور نستعمال الدالة ( )handle_starttag لطباعة كل قيم "src" للجميع أوسمة img يعني (جميع الصور).
from HTMLParser import HTMLParser
from urllib import urlopen,urlretrieve
def getImage(url):
splitPath = url.split('/')
fName = splitPath.pop()
urlretrieve(url,fName)
print "%s -> saved" % fName
class HTMLParser(HTMLParser):
def handle_starttag(self, tag, attrs):
if tag == "img":
for name,value in attrs:
if name == "src":
getImage(value)
P = HTMLParser( )
P.feed(urlopen("http://python.com").read( ))
P.close( )
|