pythonbeautifulsouptagsappendtext

Can't seem to append text to tag in BeautifulSoup


I scraped text and HTML link information from a web page and attempted to append it to a <p> tag but this did not work. Let me illustrate:

data = """
<div class="Answer">
1. BOUNDARIES - EPB &amp; APL&nbsp;<i>(inferior)</i>, EPL&nbsp;<i>(superior).&nbsp;</i><div>2. FLOOR (proximal to distal) - radial styloid =&gt; scaphoid =&gt; trapezium =&gt; 1st MC base.&nbsp;<br /><div>3. CONTENTS - cutaneous branches of radial nerve&nbsp;<i>(on the roof),</i>&nbsp;cephalic vein&nbsp;<i>(begins here),</i>&nbsp;&nbsp;radial artery&nbsp;<i>(on the floor).</i></div></div><div><br /></div><div><img src="paste-27a44c801f0776d91f5f6a16a963bff67f0e8ef3.jpg" /><br /></div><div><b>Image:&nbsp;</b>Case courtesy of Dr Sachintha Hapugoda, &lt;a href="https://radiopaedia.org/"&gt;Radiopaedia.org&lt;/a&gt;. From the case &lt;a href="https://radiopaedia.org/cases/52525"&gt;rID: 52525&lt;/a&gt; [Accessed 15 Nov. 2018].</div>
</div>
"""

soup = BeautifulSoup(data, "html.parser")
image_link = soup.find('div').find('b').next.next
new_tag = soup.new_tag('p', image_link)
print(new_tag.append(image_link))

The above returns None. What do I do?


Solution

  • it should be

    new_tag = soup.new_tag('p')
    new_tag.append(image_link)
    print(new_tag)