如何在Selenius python BeautifulSoup上循环多个页面
现在我的代码可以点击页面“”中的每一个产品,这将带我进入每个项目的产品详细信息页面。谁能告诉我如何循环多个页面,如第2页、第3页、第4页?这是我的密码如何在Selenius python BeautifulSoup上循环多个页面,python,selenium,selenium-webdriver,web-scraping,beautifulsoup,Python,Selenium,Selenium Webdriver,Web Scraping,Beautifulsoup,现在我的代码可以点击页面“”中的每一个产品,这将带我进入每个项目的产品详细信息页面。谁能告诉我如何循环多个页面,如第2页、第3页、第4页?这是我的密码 from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import Web
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
from bs4 import BeautifulSoup
#argument for incognito Chrome
option = Options()
option.add_argument("--incognito")
browser = webdriver.Chrome(options=option)
browser.get("https://www.daraz.com.bd/audio/?page=1&spm=a2a0e.home.cate_2.2.49c74591NNpWDU%27")
# Wait 20 seconds for page to load
timeout = 20
try:
WebDriverWait(browser, timeout).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='c16H9d']")))
except TimeoutException:
print("Timed out waiting for page to load")
browser.quit()
soup = BeautifulSoup(browser.page_source, "html.parser")
product_items = soup.find_all("div", attrs={"data-qa-locator": "product-item"})
for item in product_items:
item_url = f"https:{item.find('a')['href']}"
print(item_url)
browser.get(item_url)
item_soup = BeautifulSoup(browser.page_source, "html.parser")
# Use the item_soup to find details about the item from its url.
container = item_soup.find_all("div",attrs={"id":"container"})
for items in container:
title = items.find("div",{"class":"pdp-product-title"})
print(title)
browser.quit()
现在它只能从第1页获取信息。我希望它还可以收集其他页面的信息,如第2页、第3页、第4页、第5页,正如您在网站中看到的那样,当您单击URL中的第2页时,唯一需要更改的是页码,这样可以通过循环轻松完成。 为了获得更好的代码,您可以创建一个名为url的变量,并更改每个页面的url:
for page_num in range(1, 10): # change the range as you want to
url = "https://www.daraz.com.bd/audio/?page={}&spm=a2a0e.home.cate_2.2.49c74591NNpWDU%27".format(page_num)
然后将其余的代码放在这个循环中(最后一行除外)每个页面都有一个分页对象,可以将您带到上一页/下一页,等等。我将如何做?如果可能,请用代码解释。谢谢你的帮助comment@FarhanAhmed堆栈溢出不是指南、教程或文档的替代品。感谢Kurosh Ghanizadeh。成功了。请告诉我如何在csv文件中获得输出?我需要编写什么代码才能获得输出?我没有太多的CSV工作,所以我建议只阅读一些文档。这不是一件复杂的事情,你可以很容易地处理它