Итак, я пытался избавиться от ZALORA , кажется, селен продолжает отбирать повторные данные .......
Вот мои коды:
from selenium import webdriver
import time
driver = webdriver.Chrome()
url = 'https://www.zalora.com.hk/men/clothing/shirt/?gender=men&dir=desc&sort=popularity&category_id=31&page=1&enable_visual_sort=1'
driver.get(url)
driver.implicitly_wait(30)
brandname=''
productTitle=''
page=0
while True:
info_brandname = ''
info_product_title = ''
page=page+1
if len(info_brandname) < 99 or len(info_product_title) < 99:
info_brandname = driver.find_elements_by_xpath('//span[@class="b-catalogList__itmBrand fsm txtDark uc js-catalogProductTitle"]')
info_product_title = driver.find_elements_by_xpath('//em[@class="b-catalogList__itmTitle fss"]')
print('info_brandname ' + str(len(info_brandname)) + ' at page ' + str(page))
print('info_product_title ' + str(len(info_product_title)) + ' at page ' + str(page))
else:
print('info_brandname ' + str(len(info_brandname)) + ' at page ' + str(page))
print('info_product_title ' + str(len(info_product_title)) + ' at page ' + str(page))
#some manipulation of the scrapped data
for i in range(len(info_brandname)):
brandname = brandname + '\n' + info_brandname[i].text
productTitle = productTitle + '\n' + info_product_title[i].text
print(brandname.split('\n')[1:])
print(productTitle.split('\n')[1:])
Вот часть, которая, как я подозреваю, пошла не так:
#go to the next page before it loops again
try:
test = driver.find_element_by_xpath("//a[@title='Next']")
driver.execute_script("arguments[0].click();", test)
except:
print('there is no next page man...')
time.sleep(2)
print(str(driver.current_url))
driver.close()
РЕДАКТИРОВАТЬ: На данный момент самое последнее название предмета должно быть «Life8» в соответствии с веб-сайтом, но я получил «J.Crew», и я удалил в общей сложности 1885 предметов, в то время как на веб-сайте говорится, что у них только 1847 всего товаров.
URL страниц фактически менялся во время работы скрипта, вместе с элементами на каждой странице, все работает нормально, когда я вижу, что автоматизация делает свои вещи на chrome, только данные, которые удаляются селеном, странные.
РЕДАКТИРОВАТЬ 2: Я провел еще несколько исследований, я наблюдал за процессом автоматизации в веб-приводе Chrome и обнаружил, что тот же URL-адрес в веб-приводе Chrome имеет содержимое, отличное от того же URL-адреса, когда я обычно просматриваю ZALORA в обычном Chrome. Возможно ли, что веб-сайт сделал что-то, чтобы не дать людям отказаться?