BeautifulSoup не может получить внутренние теги - PullRequest
1 голос
/ 08 октября 2019

В настоящее время я пытаюсь очистить данные продукта с lazada.sg, используя bs4 в приведенном ниже коде.

from bs4 import BeautifulSoup
import requests

url = "https://www.lazada.sg/shop-mobiles/"
page = requests.get(url)
content = page.text #read html
soup = BeautifulSoup(content, 'html.parser')
products = soup.find_all("div", {"class" : "c16H9d"}) #find div tags containing product details
with open("test.txt", 'w') as f:
    f.write(str(products))

Однако вывод в test.txt равен просто []. Я обнаружил, что приведенный выше класс находится в <div id="root">, который я извлек и получил этот результат .

Как я смогу получить доступ к «внутренним тегам div»? Здесь - фрагмент исходного кода страницы.

1 Ответ

0 голосов
/ 08 октября 2019

Данные динамически загружаются из тега скрипта. Вы можете просмотреть и использовать библиотеку json для просмотра. Вам нужно будет отрегулировать линию печати, предположительно, для 2,7

import requests, re, json, pprint

r = requests.get('https://www.lazada.sg/shop-mobiles/')
p = re.compile(r'window.pageData=(.*)<')
data = json.loads(p.findall(r.text)[0])

for item in data['mods']['listItems']:
    pprint.pprint(item)
    break # delete me later
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...