मैं सुंदर सूप के साथ लूप के लिए hrefs पुनर्प्राप्त करने का प्रयास कर रहा हूं। मैंने कुछ find_all के साथ HTML के अप्रासंगिक हिस्सों को सुलझा लिया है। मैंने जो सबसे हाल ही में किया है वह है:

events = soup.find_all("a", attrs={"class": "event-link-wrap"})

मैं फिर इस तरह लूप के लिए चलाता हूं:

for event in events:
    href = event.find("href")
    category = event.find("p",{"class": "category"})
    title = event.find("h3")
    arena = event.find("span", {"class": "venue"})

जब मैं href प्रिंट करता हूं तो मुझे None मिलता है। क्या ऐसा हो सकता है कि href उस कक्षा में है जिसका मैं find_all उपयोग करता हूं? अगर मैं event प्रिंट करता हूं तो मुझे मिलता है:

<a class="event-link-wrap" href="https://www.WHATIWANT.COM/HERE title="More Info">
<div class="thumb">
<img alt="pic_125x125.jpg" src="https://www.test.com/pic.jpg"/> </div>
<div class="info clearfix">
<p class="category">CATEGORY HERE</p>
<h3>EVENT TITLE HERE</h3>
<p class="date"><span class="m-date__rangeFirst"><span class="m-date__day"> 6 </span></span><span class="m-date__separator"> - </span><span class="m-date__rangeLast"><span class="m-date__day"> 7 </span><span class="m-date__month">april</span></span> <span class="venue"> ARENA HERE</span> </p>
</div>
<div class="buttons">
<span class="icon"></span>
<span class="icon-hover"></span>
</div>
</a>

मुझे जो href चाहिए वह पहले टैग में है। मैं href को छोड़कर जो कुछ भी चाहता हूं उसे पुनर्प्राप्त करने में सक्षम हूं। मैं href कैसे प्राप्त करूं? जैसा कि मैंने उल्लेख किया है, अब यह केवल None लौटाता है।

0
jawwe 28 मार्च 2018, 16:28

1 उत्तर

आप href तक __getitem__ तक पहुंच सकते हैं:

events = [i['href'] for i in soup.find_all("a", attrs={"class": "event-link-wrap"})]
2
Ajax1234 28 मार्च 2018, 13:31