我尝试解析页面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()
答案 0 :(得分:1)
滚动后加载的div不具有类mRuble
,并且您正在进行精确的字符串匹配。也许尝试类似的事情:
all_links = soup.select('div.bOneTile.inline.jsUpdateLink')
all_links = soup.select('div[data-href]')
...