Как сделать так, чтобы парсер Beautiful soup html отображал тот же код, когда я нажимал кнопку inspect в Chrome? - PullRequest
0 голосов
/ 17 января 2020

Так что в основном я пытаюсь создать веб-скребок, чтобы найти обзоры продуктов на али express сайте. Когда я анализирую код html, он не совпадает с кодом, который я вижу в окне проверки в Chrome. Я не могу найти раздел обзора в коде, который я проанализировал. Как я могу разобрать код именно так, как я вижу его в окне проверки?

from bs4 import BeautifulSoup as soup  # HTML data structure
from urllib.request import urlopen as uReq  # Web client

# URl to web scrap from.
page_url = "https://www.aliexpress.com/item/4000042292255.html? 
spm=a2g0o.productlist.0.0.4a253632RWxaLa&algo_pvid=c73bf552-ce47-43f6-9abb- 
b4a994eeaa01&algo_expid=c73bf552-ce47-43f6-9abb-b4a994eeaa01-0&btsid=2c594979-4027-410a-a7a4- 
7246ce06ade7&ws_ab_test=searchweb0_0,searchweb201602_7,searchweb201603_53"

# opens the connection and downloads html page from url
uClient = uReq(page_url)

# parses html into a soup data structure to traverse html
# as if it were a json data type.
page_soup = soup(uClient.read(), "html.parser")
uClient.close()

1 Ответ

0 голосов
/ 17 января 2020

Он генерируется динамически, и вы можете сканировать его путем рендеринга. Вот пример для упрощенной_скрипции и pyppeteer.

from simplified_html.request_render import RequestRender
req = RequestRender({ 'executablePath': '/Applications/chrome.app/Contents/MacOS/Google Chrome'})
def callback(html,url,data):
  from simplified_scrapy.simplified_doc import SimplifiedDoc 
  doc = SimplifiedDoc(html)
  print (doc.title)
req.get('https://www.aliexpress.com/item/4000042292255.html?spm=a2g0o.productlist.0.0.4a253632RWxaLa&algo_pvid=c73bf552-ce47-43f6-9abb-b4a994eeaa01&algo_expid=c73bf552-ce47-43f6-9abb-b4a994eeaa01-0&btsid=2c594979-4027-410a-a7a4-7246ce06ade7&ws_ab_test=searchweb0_0,searchweb201602_7,searchweb201603_53',callback)

Результат:

{'tag': 'title', 'html': 'Note 7 pro smartphones 4G LTE celulares 4GB RAM 64GB ROM quad core 13MP camera 18:9 IPS Android mobile phones face ID unlocked-in Cellphones from Cellphones & Telecommunications on AliExpress'}

Примеры упрощенной_скрипции можно найти здесь

...