Как получить ссылку на сайт в Python, используя BeautifulSoup - PullRequest
0 голосов
/ 12 октября 2019

Я хочу получить ссылку: / hmarchhak / 102217 с сайта (https://www.vanglaini.org/) и распечатать ее как https://www.vanglaini.org/hmarchhak/102217. Пожалуйста, помогите Img

import requests
import pandas as pd
from bs4 import BeautifulSoup

source = requests.get('https://www.vanglaini.org/').text
soup = BeautifulSoup(source, 'lxml')
for article in soup.find_all('article'):
    headline = article.a.text
    summary=article.p.text
    link = article.a.href
    print(headline)
    print(summary)
    print(link)

print()

Это мой код.

1 Ответ

0 голосов
/ 12 октября 2019

Если я не пропустил что-то, заголовок и резюме выглядят одинаково. Вы можете использовать :has с bs4 4.7.1+, чтобы у вашего article был ребенок href;и это, кажется, лишает article элементов тега, которые не являются частью основного тела, что, как я подозреваю, на самом деле является вашей целью

from bs4 import BeautifulSoup as bs
import requests

base = 'https://www.vanglaini.org'
r = requests.get(base)
soup = bs(r.content, 'lxml')

for article in soup.select('article:has([href])'):
    headline = article.h5.text.strip()
    summary = re.sub(r'\n+|\r+',' ',article.p.text.strip())
    link = f"{base}{article.a['href']})"  
    print(headline)
    print(summary)
    print(link)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...