Не верный результат при парсинге html страницы при помощи lxml
Имеется код на Python, который парсит страницу https://wordpress.org/plugins/. В коде используется фреймворк BeautifulSoup в связке с парсером lxml. Страница имеет 4 блока по 4 плагина. Результат парсинга получается следующий - первый блок парсится с плагинами, которых нет на этой странице, остальные блоки парсятся корректно. Первый блок со временем может иметь разные результаты парсинга.
При этом, если вместо lxml указать парсер html.parser, то страница распарсится корректно.
Вот код:
import requests
from bs4 import BeautifulSoup
def get_data(url):
soup = BeautifulSoup(requests.get(url).text, 'lxml')
sections = soup.find_all('section')
for section in sections:
header = section.find('h2', class_="section-title").text
print(header)
for plugin in section.find_all('article'):
name = plugin.find('h3').find('a').text
print('\t', name)
def main():
url = 'https://wordpress.org/plugins/'
get_data(url)
if __name__ == '__main__':
main()
А вот результат выполнения кода:
Block-Enabled Plugins
Five Star Restaurant Reservations – WordPress Booking Plugin
Gallery, Images, Slider in Robo Gallery
Easy restaurant menu upload
Smart Slider 3
Featured Plugins
Classic Editor
Akismet Spam Protection
Jetpack – WP Security, Backup, Speed, & Growth
Gutenberg
Beta Plugins
Gutenberg
Two-Factor
Preferred Languages
Application Passwords
Popular Plugins
Contact Form 7
Yoast SEO
Classic Editor
Elementor Website Builder
Парсер lxml работает не правильно, или я чего-то не так делаю?