Ошибка: у объекта ResultSet нет атрибута конца-с-конца - PullRequest
0 голосов
/ 24 февраля 2020

Я пытаюсь удалить уникальные ссылки с веб-сайта, но когда я это делаю, я получаю следующую ошибку, и я не уверен, что ее вызывает.

Объект ResultSet не имеет атрибута "заканчивается" , Вы, вероятно, рассматриваете список предметов как отдельный предмет. Вы вызывали find_all (), когда намеревались вызвать find ()?

Я попытался изменить URL, чтобы посмотреть, была ли это ссылка, и она не сработала - что меня не удивило, но Я хотел проверить.

Я посмотрел документацию (https://www.crummy.com/software/BeautifulSoup/bs4/doc/#miscellaneous) и, если я правильно ее понимаю, он говорит использовать find вместо findall. Вместо этого я попытался использовать поиск, но это ничего не подтянуло, но даже если бы оно имело место, оно не подняло бы то, что я искал, так как мне нужны все уникальные ссылки.

В любом случае, вот код Любые идеи или места, которые я могу посмотреть, чтобы понять эту ошибку больше? запросы на импорт

from bs4 import BeautifulSoup
import urllib.request
import urllib.parse

url="https://www.census.gov/programs-surveys/popest.html"

r=requests.get(url)
soup= BeautifulSoup(r.content, "html.parser")

links =  soup.find_all("a")

for link in links:
link.get("href")

def unique_links(tags,url):
cleaned_links = set()

for link in links:
    link = link.get("href")

    if link is None:
        continue
    if link.endswith('/') or links.endswith('#'):
        link = link [-1]

    actual_url = urllib.parse.urljoin(url,link)
    cleaned_links.add(actual_url)

return cleaned_links

cleaned_links = unique_links(links, url)

1 Ответ

1 голос
/ 24 февраля 2020

В вашем коде есть опечатка: link.endswith ('#'): вместо ссылок.

if link.endswith('/') or link.endswith('#'):
            link = link [-1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...