Как мне выборочно соскобить hrefs с тегов div? - PullRequest
0 голосов
/ 21 марта 2020

Я пытаюсь почистить URL-адреса с новостного сайта. В частности, это URL-адреса новостных статей, перечисленных в результатах поиска для определенного c поискового запроса.

Я новичок в BeautifulSoup и не знаю, как выборочно очистить только те ссылки, которые Отнесите меня к статье (когда я пытаюсь отыскать для детей hrefs в тегах div, я просто получаю пустой набор, а когда я очищаю теги, я получаю гораздо больше URL, чем хочу.

Есть мысли?

Вот ссылка на веб-страницу: https://www.thenational.ae/search?q=aramco

Вот код, который я использую.

import requests, random, re
from bs4 import BeautifulSoup as bs

url = "https://www.thenational.ae/search?q=aramco"
webpage = requests.get(url)
soup = bs(webpage.text, "html.parser")
for link in soup.find_all('h1'):
    print(link.get('href'))

1 Ответ

1 голос
/ 21 марта 2020

Вам необходимо понять структуру HTML. Из структуры вы можете видеть, что hrefs, который вам нужен, это дети того же самого div с классом small-article-desc. В общем, вы делаете это так:

import requests, random, re
from bs4 import BeautifulSoup as bs

url = "https://www.thenational.ae/search?q=aramco"
webpage = requests.get(url)
soup = bs(webpage.text, "html.parser")
for div in soup.find_all('div', {"class": "small-article-desc"}):
    a = div.find_all('a')
    print(a[0].get('href'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...