Ошибка при попытке использовать функцию .difference() в Python Jupyter

#javascript #python #web-scraping #python-requests

#javascript #python #веб-очистка #python-запросы

Вопрос:

Контекст

В настоящее время я прохожу курс по созданию веб-страниц. После перехода к модулю очистки javascript set_1.difference(set_2) была использована функция для отличия старых переменных от вновь созданных переменных. Но когда я это сделал, возникла эта ошибка:

AttributeError: 'list' object has no attribute 'difference'

Я искал в Интернете и наткнулся на этот сайт. Но запуск примера на их собственном веб-сайте вызвал ошибку

Проблема

Есть причина, по которой это не работает? Я хочу распечатать вновь созданные ссылки javascript. Ниже приведен код, который я пытаюсь запустить:

 from requests_html import AsyncHTMLSession
session = AsyncHTMLSession()

r = await session.get('https://www.ons.gov.uk/economy/economicoutputandproductivity/output/datasets/economicactivityfasterindicatorsuk')
r.status_code
 

divs = r.html.find('div')
downloads = r.html.find('a')
urls = r.html.absolute_links
    
# Now need to render the javascript. Downloads chromium the first time we use it,
# It is a browser that has no GUI
await r.html.arender()
    
new_divs = r.html.find('div')
new_downloads = r.html.find('a')
new_urls = r.html.absolute_links
    
# Get only the newly created html
new_downloads.difference(downloads)
 

Ответ №1:

Не знаю, что такое объект «r», поэтому не могу проверить ваш код, но difference это метод наборов, а не списков.

https://docs.python.org/3/library/stdtypes.html#frozenset.difference

Это должно сработать: set(new_downloads).difference(downloads)