मैं सुंदरसूप के साथ नया हूं, मैं इस साइट से कुछ कच्चे डेटा निकालने की कोशिश कर रहा हूं, मैंने पार्सिंग किया।

from urllib.request import urlopen
from bs4 import BeautifulSoup
path='https://www.esquire.com/entertainment/tv/g28380481/best-anime-2019/'
f = urlopen(path)
html = str(f.read())
soup = BeautifulSoup(html, 'html.parser')
txt = soup.find_all('iframe')

मुझे यह bs4 ऑब्जेक्ट मिला है

[<iframe allowfullscreen="true" data-src="//www.youtube.com/embed/6M7f41OJfcM?enablejsapi=1" frameborder="0"></iframe>,
 <iframe allowfullscreen="true" data-src="//www.youtube.com/embed/0glqBjvku84?enablejsapi=1" frameborder="0"></iframe>,
 <iframe allowfullscreen="true" data-src="//www.youtube.com/embed/YKJf876thxw?enablejsapi=1" frameborder="0"></iframe>,
 <iframe allowfullscreen="true" data-src="//www.youtube.com/embed/SdFgPGSmy0Y?enablejsapi=1" frameborder="0"></iframe>,
 <iframe allowfullscreen="true" data-src="//www.youtube.com/embed/Ie-bo3IulmY?enablejsapi=1" frameborder="0"></iframe>,
 <iframe allowfullscreen="true" data-src="//www.youtube.com/embed/ApLudqucq-s?enablejsapi=1" frameborder="0"></iframe>,
 <iframe allowfullscreen="true" data-src="//www.youtube.com/embed/FpRk3m3Y-Zg?enablejsapi=1" frameborder="0"></iframe>,
 <iframe allowfullscreen="true" data-src="//www.youtube.com/embed/J9tu253SOas?enablejsapi=1" frameborder="0"></iframe>,
 <iframe allowfullscreen="true" data-src="//www.youtube.com/embed/lCPf9SA4mgU?enablejsapi=1" frameborder="0"></iframe>,
 <iframe allowfullscreen="true" data-src="//www.youtube.com/embed/neqxQdpTyXE?enablejsapi=1" frameborder="0"></iframe>]

अब मैं प्रत्येक तत्व से वेबसाइटों को निकालना चाहता हूं, मैंने नीचे इस कोड के साथ प्रयास किया है। मुझे पता होगा कि प्रत्येक तत्व को एक स्ट्रिंग में खोज करने के बजाय उपयोग करने के लिए सुंदरसूप कमांड का उपयोग करना है।

import re
trailers=[]
pattern='(www.+1)'
for line in txt:
  line=str(line)
  trailers.append(re.search(pattern,line).group(0))

trailers
['www.youtube.com/embed/6M7f41OJfcM?enablejsapi=1',
 'www.youtube.com/embed/0glqBjvku84?enablejsapi=1',
 'www.youtube.com/embed/YKJf876thxw?enablejsapi=1',
 'www.youtube.com/embed/SdFgPGSmy0Y?enablejsapi=1',
 'www.youtube.com/embed/Ie-bo3IulmY?enablejsapi=1',
 'www.youtube.com/embed/ApLudqucq-s?enablejsapi=1',
 'www.youtube.com/embed/FpRk3m3Y-Zg?enablejsapi=1',
 'www.youtube.com/embed/J9tu253SOas?enablejsapi=1',
 'www.youtube.com/embed/lCPf9SA4mgU?enablejsapi=1',
 'www.youtube.com/embed/neqxQdpTyXE?enablejsapi=1']

मैं नाम निकालने के लिए यहां विशेषताओं का उपयोग कैसे कर सकता हूं?

<span class="listicle-slide-hed-text">Fruits Basket (Funimation)</span>,
<span class="listicle-slide-hed-text">One Punch Man (Hulu)</span>,
<span class="listicle-slide-hed-text">Rilakkuma and Kaoru (Netflix)</span>,
<span class="listicle-slide-hed-text">Mob Psycho 100 II (Crunchyroll)</span>,
<span class="listicle-slide-hed-text">Ride Your Wave (July release at Fantasia Fest)</span>,
<span class="listicle-slide-hed-text">The Promised Neverland (Hulu)</span>,
<span class="listicle-slide-hed-text">Vinland Saga (Amazon Prime)</span>,
<span class="listicle-slide-hed-text">Boogiepop Never Laughs (Crunchyroll)</span>,
<span class="listicle-slide-hed-text">Saga of Tanya the Evil (Crunchyroll)</span>,
<span class="listicle-slide-hed-text">Dororo (Amazon Prime)</span>
-2
Sabri Trabelsi 25 मार्च 2020, 19:30

1 उत्तर

सबसे बढ़िया उत्तर

यहां रेगेक्स का उपयोग करने की कोई आवश्यकता नहीं है।

सुंदरसूप के तत्वों की attrs संपत्ति का उपयोग करने का एक बहुत आसान तरीका हो सकता है जैसे:

from urllib.request import urlopen
from bs4 import BeautifulSoup
path='https://www.esquire.com/entertainment/tv/g28380481/best-anime-2019/'
f = urlopen(path)
html = str(f.read())
soup = BeautifulSoup(html, 'html.parser')
txt = soup.find_all('iframe')

for element in txt:    
    print(element.attrs["data-src"][2:])

जो एक ही परिणाम उत्पन्न करता है:

www.youtube.com/embed/6M7f41OJfcM?enablejsapi=1
www.youtube.com/embed/0glqBjvku84?enablejsapi=1
www.youtube.com/embed/YKJf876thxw?enablejsapi=1
www.youtube.com/embed/SdFgPGSmy0Y?enablejsapi=1
www.youtube.com/embed/Ie-bo3IulmY?enablejsapi=1
www.youtube.com/embed/ApLudqucq-s?enablejsapi=1
www.youtube.com/embed/FpRk3m3Y-Zg?enablejsapi=1
www.youtube.com/embed/J9tu253SOas?enablejsapi=1
www.youtube.com/embed/lCPf9SA4mgU?enablejsapi=1
www.youtube.com/embed/neqxQdpTyXE?enablejsapi=1

विशेषताओं को संसाधित करने के तरीके के बारे में आप यहां अधिक पढ़ सकते हैं: https://www। crummy.com/software/BeautifulSoup/bs4/doc/#attributes

0
Martin Gergov 25 मार्च 2020, 19:57