问题是我无法在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。
答案 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计数任何元素。