#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)