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

मैं इसे एक ही लाइन में निर्यात करने की कोशिश कर रहा हूं जिसमें दोनों लिंक (जो यह वर्तमान में करता है) और लिंक का टेक्स्ट एक ही लाइन में है:

https://this.is.the.url "And this is the article header"

या लगातार पंक्तियों में:

https://this.is.the.url
"And this is the article header"

लिंक नमूना

 <a 
   rel="nofollow" 
   class="external text" 
   href="https://www.mmajunkie.usatoday.com/2020/08/gerald-meerschaert-tests-positive-covid-19-ed-herman-fight-off-ufc-on-espn-plus-31/amp">
   "Gerald Meerschaert tests positive for COVID-19; Ed Herman fight off UFC on ESPN+ 31"
 </a>

खुरचनी

import requests
import sys
from bs4 import BeautifulSoup

session = requests.Session()
selectWikiPage = "https://en.wikipedia.org/wiki/UFC_Fight_Night:_Waterson_vs._Hill"


if "wikipedia" in selectWikiPage:
    html = session.post(selectWikiPage)
    bsObj = BeautifulSoup(html.text, "html.parser")
    references = bsObj.find('ol', {'class': 'references'})
    href = BeautifulSoup(str(references), "html.parser")
    links = [a["href"] for a in href.find_all("a", class_="external text", href=True)]
    title = [a["href"] for a in href.find_all("a", class_="external text", href=True)]
    for link in links:
        print(link)

else:
    print("Error: Please enter a valid Wikipedia URL")
0
TheMightyLlama 24 सितंबर 2020, 15:46

2 जवाब

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

ठीक कर दिया:

import requests
import sys
from bs4 import BeautifulSoup

session = requests.Session()
selectWikiPage = "https://en.wikipedia.org/wiki/UFC_Fight_Night:_Waterson_vs._Hill"

if "wikipedia" in selectWikiPage:
    html = session.post(selectWikiPage)
    bsObj = BeautifulSoup(html.text, "html.parser")
    references = bsObj.find('ol', {'class': 'references'})
    href = BeautifulSoup(str(references), "html.parser")

    for a in href.find_all("a", class_="external text", href=True):
        listitem = [a["href"],a.getText()]

        print(listitem)

else:
    print("Error: Please enter a valid Wikipedia URL")
0
TheMightyLlama 24 सितंबर 2020, 16:24

एंकर टैग की केवल href विशेषता प्राप्त करने के बजाय आप लिंक का टेक्स्ट भी प्राप्त कर सकते हैं।

यह बस द्वारा किया जा सकता है

links = [(a["href"], a.text)
         for a in href.find_all("a", class_="external text", href=True)]
for link, title in links:
    print(link, title)

अब प्रत्येक links तत्व लिंक और शीर्षक के साथ एक tuple होगा। अब आप इसे अपनी इच्छानुसार प्रदर्शित कर सकते हैं।

साथ ही a.text को a.getText() या a.get_text() की तरह लिखा जा सकता है, इसलिए चुनें कि आपकी कोड शैली के लिए क्या उपयुक्त है।

0
marc_s 30 सितंबर 2020, 12:15