получить ссылки с bs4.BeautifulSoup - PullRequest
0 голосов
/ 04 апреля 2019

Я хочу получить только href, которые начинаются с https.

 (some texts(type='bs4.BeautifulSoup')).find_all("a",href="https") can not get url links.

Я делаю инструменты для ползания.

Ответы [ 2 ]

0 голосов
/ 06 апреля 2019

Вы также можете отфильтровать атрибут href тега, используя регулярное выражение в find_all

soup.find_all('a',href=re.compile('^https'))

Демо

from bs4 import BeautifulSoup
import re
html="""
<a href="https://www.google.com">Secure</a>
<a href="http://www.google.com">Not Secure</a>
"""
soup=BeautifulSoup(html,'html.parser')
print(soup.find_all('a',href=re.compile('^https')))

Выходы:

[<a href="https://www.google.com">Secure</a>]

Документация:

Ключевое слово аргументы

Регулярное выражение в качестве фильтра

0 голосов
/ 04 апреля 2019

Использовать атрибут css = селектор значений, начинающийся с оператора ^. Уверен, что обманщик, но не может быстро найти хороший пример.

 links = [link['href'] for link in soup.select('[href^='https'])]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...