2017-10-12 71 views
0

我尝试解析页ozon.ru硒:滚动页面来与蟒蛇

解析和我有一些问题。 我应该滚动页面,然后获取所有html代码。 但我滚动页面,高度正在改变,但解析的结果是错误的,因为它只返回第一页的结果。 我不明白,我应该更新页面的html代码,我该怎么做?

def get_link_product_ozon(url): 
    chromedriver = "chromedriver" 
    os.environ["webdriver.chrome.driver"] = chromedriver 
    driver = webdriver.Chrome(chromedriver) 
    driver.get(url) 
    i = 0 
    last_height = driver.execute_script("return document.body.scrollHeight") 
    while i < 80: 
     try: 
      driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") 
      time.sleep(3) 
      new_height = driver.execute_script("return document.body.scrollHeight") 
      i += 1 
      last_height = new_height 
     except: 
      time.sleep(3) 
      continue 
    soup = BeautifulSoup(driver.page_source, "lxml") 
    all_links = soup.findAll('div', class_='bOneTile inline jsUpdateLink mRuble ') 
    for link in all_links: 
     print(link.attrs['data-href']) 

    driver.close() 

回答

1

那些在滚动后加载的div没有类mRuble而且您正在执行精确的字符串匹配。也许尝试类似:

all_links = soup.select('div.bOneTile.inline.jsUpdateLink') 
all_links = soup.select('div[data-href]') 
...