تحليل استجابة شمل من bit.ly
سؤال
كنت أحاول الخروج من bit.ly أبي لتقصير وحصلت عليه للعمل.فإنه يعود إلى بلدي النصي وثيقة شمل.كنت أرغب في استخراج العلامة ولكن يبدو أنه لا يمكنني تحليلها بشكل صحيح.
askfor = urllib2.Request(full_url)
response = urllib2.urlopen(askfor)
the_page = response.read()
لذلك تحتوي الصفحة على مستند شمل.حاولت:
from xml.dom.minidom import parse
doc = parse(the_page)
هذا يسبب خطأ.ماذا أفعل خطأ?
المحلول
لا تقدم رسالة خطأ لذا لا يمكنني التأكد من أن هذا هو الخطأ الوحيد.لكن, xml.minidom.parse
لا يأخذ سلسلة.من دوسترينغ ل parse
:
تحليل ملف إلى دوم بواسطة اسم الملف أو كائن الملف.
يجب أن تحاول:
response = urllib2.urlopen(askfor)
doc = parse(response)
منذ response
سوف تتصرف مثل كائن ملف.أو يمكنك استخدام parseString
الطريقة في minidom
بدلا من ذلك (ثم تمر the_page
كما الحجة).
تحرير:لاستخراج عنوان ورل ، سوف تحتاج إلى القيام به:
url_nodes = doc.getElementsByTagName('url')
url = url_nodes[0]
print url.childNodes[0].data
نتيجة getElementsByTagName
هي قائمة بجميع العقد مطابقة (واحد فقط في هذه الحالة). url
هو عنصر كما لاحظت ، والذي يحتوي على عقدة نصية فرعية ، والتي تحتوي على البيانات التي تحتاجها.
نصائح أخرى
from xml.dom.minidom import parseString
doc = parseString(the_page)
انظر وثائق ل xml.dom.minidom
.