如何计算硒中2页或更多页中的所有元素?

时间:2018-08-01 20:56:33

标签: python selenium selenium-webdriver

问题是我无法在Selenium中正确计算2个网页上的所有元素。

pages = driver.find_elements(By.CLASS_NAME, "page") #getting list of pages
for x in pages:                              #loop through this list
    x.click()                                #click on page number
    prices += driver.find_elements(By.CLASS_NAME, "final-price") #addition 1pg and 2pg elements 
print(len(prices))

结果错误:它将1pg和1pg相加,而不是1pg和2pg相加。 试图插入等待-没有帮助:( 我要指出的是,该页面并未重新加载,只需向上滚动并在单击第2页后显示新结果,它必须使用ajax。

1 个答案:

答案 0 :(得分:0)

您可以使用请求和bs4库来抓取网站。

例如:

a)我将计算一个站点中有多少链接:

b)我将为每个链接提取href值

import requests, bs4

my_request = requests.get('https://www.bellezaculichi.com')
# request one page

my_request.raise_for_status()
# check for error

my_html = bs4.BeautifulSoup(my_request.text)
# parse site

my_links = my_html.select('a')
#stores all links in list my_links

total_links = len(my_links)
# how many links do i found

print(total_links)
# show how many links


for i in range(total_links):
    my_links[i]["href"]

使用bs4,您可以计算网页中的任何元素。

您可以计算多少个div,p或a

使用bs4,您可以按ID计数网页中的任何元素。

使用bs4,您可以在网页中按CLASS计数任何元素。

使用bs4,您可以在网页中按ATTRIBUTE计数任何元素。