سؤال

إنه ليس مجرد تجريف، أنا فقط أحاول العثور على عناوين URL في صفحة ويب حيث يكون للفصل قيمة محددة.على سبيل المثال:

<a class="myClass" href="/url/7df028f508c4685ddf65987a0bd6f22e">

أريد الحصول على قيمة href.أي أفكار حول كيفية القيام بذلك؟ربما ريكس؟هل يمكنك نشر بعض الأمثلة على التعليمات البرمجية؟أعتقد أن استخراج libs من html، مثل BeautifulSoup، يعتبر مبالغة في هذا الأمر فقط...

بفضل ضخمة!

هل كانت مفيدة؟

المحلول

Regex عادةً فكرة سيئة، حاول استخدامه حساء جميل

مثال سريع:

html = #get html
soup = BeautifulSoup(html)
links = soup.findAll('a', attrs={'class': 'myclass'})
for link in links:
    #process link

نصائح أخرى

ارغ، لا regex لتحليل HTML!

لحسن الحظ في بايثون لدينا حساء جميل أو com.lxml للقيام بهذه المهمة بالنسبة لنا.

سيكون Regex خيارًا سيئًا.HTML ليست لغة عادية.ماذا عن حساء جميل?

لا ينبغي استخدام Regex لتحليل HTML.يرى الجواب الأول على هذا السؤال للتوضيح :)

+1 للحساء الجميل.

إذا كانت مهمتك بهذه البساطة، فما عليك سوى استخدام معالجة السلسلة (بدون حتى التعبير العادي)

f=open("htmlfile")
for line in f:
    if "<a class" in line and "myClass" in line and "href" in line:
        s = line [ line.index("href") + len('href="') : ]
        print s[:s.index('">')]
f.close()

موزعي HTML ليس ضروريًا لمثل هذه الحالات.

الأمر هو أنني أعرف بنية صفحة HTML، وأريد فقط العثور على هذا النوع المحدد من الروابط (حيث class = "myclass").حساء جميل على أي حال؟

قراءة تحليل HTML بطريقة Cthulhu https://blog.codinghorror.com/parsing-html-the-cthulhu-way/

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top