PYTHON: поиск скрытого элемента в HTML-коде - PullRequest
2 голосов
/ 23 октября 2019

Я пытаюсь получить URL-адрес ниже, который скрыт внутри исходного кода страницы на https://www.aliexpress.com/item/32212764152.html, но он скрыт внутри тега скрипта.

<script>
                    window.runParams = {"descriptionModule":{"descriptionUrl":"https://aeproductsourcesite.alicdn.com/product/description/pc/v2/en_US/desc.htm?productId=32212764152&key=HTB1GwO_aVY7gK0jSZKzM7OikpXac.zip&token=f32528ddd34e37aecddda1c7778d5f0c"} .... </script>

Мне удалось получитьисходный код, но не уверен, как извлечь URL как объект.

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
import re

options = webdriver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')
options.add_argument("--test-type")
CHROMEDRIVER_PATH = '/Users/reezalaq/PycharmProjects/wholesale/driver/chromedriver'
options = Options()
options.headless = False
driver = webdriver.Chrome(CHROMEDRIVER_PATH, options=options)
driver.get('https://www.aliexpress.com/item/32212764152.html')

html = driver.page_source

def run_script():
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    body = driver.find_element_by_css_selector('body')
    body.send_keys(Keys.PAGE_UP)

count = 0
while count < 3: #13
     run_script()
     count+=1
     time.sleep(5)

x = html.startswith('https://aeproductsourcesite.alicdn.com')
print(x)

Как мне отфильтровать все остальное в исходном коде и получить объект?

x = "https://aeproductsourcesite.alicdn.com/product/description/pc/v2/en_US/desc.htm?productId=32212764152&key=HTB1GwO_aVY7gK0jSZKzM7OikpXac.zip&token=f32528ddd34e37aecddda1c7778d5f0c"

1 Ответ

2 голосов
/ 23 октября 2019

Вы можете использовать Регулярное выражение для извлечения значения:

import re
#..
url = re.compile(r'"descriptionUrl":"([^"]*)"').search(html).group(1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...