Как я могу изменить свой код, чтобы получить URL-ссылку из кода HTML? - PullRequest
2 голосов
/ 07 апреля 2019

Я пытаюсь использовать beautifulsoup4 для удаления URL-адреса HTML-кода в python, но я получил ошибку, подобную этой: AttributeError: у объекта 'NoneType' нет атрибута 'get'

HTML-код:

<a class="top NQHJEb dfhHve" href="https://globalnews.ca/news/5137005/donald-trump-robert-mueller-report/" ping="/url?sa=t&amp;source=web&amp;rct=j&amp;url=https://globalnews.ca/news/5137005/donald-trump-robert-mueller-report/&amp;ved=0ahUKEwiS9pn-4rzhAhWOyIMKHSOPD6QQvIgBCDcwAg"><img class="th BbeB2d" src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ_Nf-kVlqsQz8NeNgQ9a9YRiA7Fl4DJ6Jod0sxNXapOK_iJebx20dgROk5YBl8IqFQX6S-eeY2" alt="Story image for trump from Globalnews.ca" onload="typeof google==='object'&amp;&amp;google.aft&amp;&amp;google.aft(this)" data-iml="1554598687532" data-atf="3"></a>

Мой код питона:

URL_results = soup.find_all('a', class_= 'top NQHJEb dfhHve').get('href')

1 Ответ

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

Вы применяете метод к списку.Вместо этого вы хотите применить к каждому элементу

URL_results = [a.attrs.get('href') for a in soup.find_all('a', class_= 'top NQHJEb dfhHve')]

Я предпочитаю

URL_results = [item['href'] for item in soup.select('a.top.NQHJEb.dfhHve')]

И вы можете удалить некоторые из классов из текущего составного селектора классов, например

URL_results = [item['href'] for item in soup.select('a.dfhHve')]

Вам нужно будет поиграть и посмотреть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...