r4khic
@r4khic
Начинающий кодер на python

Как получить полный url?

У меня такой вопрос. Вот я с помощью цикла перебрал ссылки из массива.
def get_page_link(html):
soup = BeautifulSoup(html, 'lxml')
title =soup.find('h1',{'class':'roboto'}).text
link_containers=soup.findAll('div',{'class':'cat_news_item'})
print(str.strip(title))


counter = 0
for link_container in link_containers:
    a_tag = link_container .find("a")
    # Если нашел
    if a_tag:
        link = a_tag.get("href")
        print(link)
    else:
        counter += 1
print(f"Ошибок нашлось {counter}")

И при выводе он мне ссылки по типу
"/4980254-tokaev-prinyal-novogo-akima-almaty-i.html" Нужно чтобы была полная ссылка по типу "https://www.zakon.kz/4980254-tokaev-prinyal-novogo..."

Если нужно вот полный код:
import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin
import pymysql

def get_html(url):
    r = requests.get(url)
    return r.text

def get_links(html):
    soup = BeautifulSoup(html, 'lxml')
    links=soup.findAll(link_container_array[0],{link_container_array[1]:link_container_array[2]})

    for link_container in links:
        a_tag = link_container .find("a")
        # Если нашел
        if a_tag:
            link = a_tag.get("href")
            print(link)


def main(resource_allnews_link):
    url = resource_allnews_link
    (get_links(get_html(url)))


# < Подключение к базе данных.
connection = pymysql.connect(host='localhost',
                             user='root',
                             password='',
                             db='news_portal',
                             charset='utf8',
                             autocommit=True)
cursor = connection.cursor()

# < Запрос для получения правил выдергивания контента.
cursor.execute('SELECT `resource_id`, `resource_name`, `resource_url`, `resource_allnews_link`, `link_rule`, `mainblock`, `mainblock1`, `page_link`, `title`, `datetime`, `datetime1`, `text`, `text1` FROM `resource` WHERE 1')
resources=cursor.fetchall()

for resource in resources:
    resource_allnews_link=resource[3]
    content_rule=resource[4]
    link_container_array=content_rule.split(',')
    main(resource_allnews_link)

connection.close()
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
r4khic
@r4khic Автор вопроса
Начинающий кодер на python
Нашел способ.
link = resource_allnews_link + a_tag.get("href")
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы