Как очистить все ссылки на веб-странице?Мой код только очищает некоторые ссылки - PullRequest
0 голосов
/ 23 мая 2018

Это мой код для очистки всех ссылок на веб-странице:

from bs4 import BeautifulSoup
import requests
import re

page = requests.get("http://www3.asiainsurancereview.com/News")
soup = BeautifulSoup(page.text, "html.parser")
for link in soup.findAll('a', attrs={'href': re.compile("^http://")}):
    print(link.get('href'))

links.close()

Но в нем перечислены только ссылки, которые присутствуют в раскрывающихся списках.Это почему?Почему он не «увидел» ссылки новостных статей, представленных на странице?Я действительно хочу очистить все новостные статьи.Я попытался сделать следующее, чтобы идентифицировать тег и очистить ссылки новостной статьи в этом теге:

import requests
import re

links=open("Life_and_health_links.txt", "a")
page = requests.get("http://www3.asiainsurancereview.com/News")
soup = BeautifulSoup(page.text, "html.parser")

li_box = soup.select('div.col-sm-5 > ul > li > h5 > a')
for link in li_box:
    print(link['href'])

Но это, конечно, отображает только ссылки в этом конкретном теге.И чтобы перечислять ссылки в других тегах, я должен запустить этот код несколько раз, указав конкретный тег, ссылку которого я хочу перечислить.Но как мне перечислить все ссылки новостных статей во всех тегах и пропустить ссылки, которые не относятся к новостным статьям?

1 Ответ

0 голосов
/ 23 мая 2018

Вам нужно провести некоторое исследование, чтобы найти общий шаблон ссылок на новости.

Попробуйте, надеюсь, это сработает.

li_box = soup.select("div ul li h5 a")
for a in li_box:
    print(a['href'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...