Не могу понять, почему soup.find_all () возвращает пустой список - PullRequest
0 голосов
/ 30 апреля 2020

Я новичок в Python и занимаюсь веб-скребком с помощью BeautifulSoup.

Я проверил несколько похожих вопросов, таких как этот , этот и этот . Однако я все еще застреваю в своей проблеме.

Вот мои коды:

import urllib.request
from bs4 import BeautifulSoup

html = urllib.request.urlopen("https://en.wikipedia.org/wiki/List_of_largest_recorded_music_markets").read()
soup = BeautifulSoup(html, 'html.parser')

tbody = soup.find_all('table',{"class":"wikitable plainrowheaders sortable jquery-tablesorter"})

Во-первых, я не думаю, что искомая веб-страница содержит java сценарий, который был упомянут в аналогичных вопросах. Я собираюсь извлечь данные из этих таблиц, но когда я выполнил print (tbody), я обнаружил, что это пустой список. Может кто-нибудь взглянуть и дать мне несколько советов?

Спасибо.

1 Ответ

0 голосов
/ 30 апреля 2020

Вы должны удалить часть jquery -tablesorter. Он динамически применяется после загрузки страницы, поэтому, если вы включите его, он не будет работать.

Это должно работать:

import urllib.request
from bs4 import BeautifulSoup

html = urllib.request.urlopen("https://en.wikipedia.org/wiki/List_of_largest_recorded_music_markets").read()
soup = BeautifulSoup(html, 'html.parser')

tbody = soup.find('table', {"class": "wikitable plainrowheaders sortable"})
print(tbody)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...