получить ссылки внутри основного контента с помощью Python - PullRequest
0 голосов
/ 09 октября 2019

Я пытаюсь найти класс или div на случайном веб-сайте с наибольшим содержанием.

, что означает, что мне не нужна боковая панель или панель навигации внутри веб-сайта

<body>
    <div class="1">content</div>
    <div class="2">side-bar</div>
    <div class="3">nav-bar</div>
    <div class="4">
        <p>main content</p>
        <p>more content</p>
    </div>
    <div class="5">latest posts</div>
    <div class="6">comments</div>   
</body>

вывод: имя класса - "4"

from urllib.request import urlopen

from urllib.error import HTTPError

import urllib.parse as urlparse

from bs4 import BeautifulSoup

url = "https://www.randomwebsite.com"

def get_class_name(url):

    """
    Get the class name and return all "a" tags inside of it
    """

    page = urlopen( url ).read()   #getting the whole html souorce raw (unclear)
    soup = BeautifulSoup(page, "lxml") #getting the whole html souorce raw (clear)


    #which "div" has the most chars inside of it     
    x = max([len(i) for i in soup.find_all("div")])


    #     
    for i in soup.find_all("div"):
        if len(i) == x:
            cls = i["class"][0]


#   after finding the right class get the "a" tags links inside the "div/class"
    for data in soup.find_all('div', class_=cls):
        for a in data.find_all('a'):
            print(a.get('href'),a.text) #for getting link





get_class_name(url)

Я старался изо всех сил объяснить. но я хочу, чтобы он работал для каждого URL

...