как получить данные селена в Excel или CSV? - PullRequest
0 голосов
/ 08 мая 2020

Вот мой полный код. Я хочу получить выходные данные в CSV, такие как заголовок, цена, все будет разделено столбцом в таблице CSV или Excel. Мой код переходит на страницу сведений о каждом продукте и собирает необходимую мне информацию, такую ​​как название продукта, цена и т. Д. c.

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/consumer-electronics/?spm=a2a0e.pdp.breadcrumb.1.4d20110bzkC0bn")

# 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()

//getting link of each product 
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)

    //scrape details page information 
    itm_soup = BeautifulSoup(browser.page_source, "html.parser")
    container_box = itm_soup.find_all("div",{"id":"container"})
    # Use the itm_soup to find details about the item from its url.
    for itm in container_box:
        product_title_element = itm.find("span",class_="pdp-mod-product-badge-title")
        product_title = product_title_element.get_text() if product_title_element else "No title"
        print(product_title)

browser.quit()

как я получу название продукта в таблице CSV или Excel?

1 Ответ

2 голосов
/ 08 мая 2020

Вы можете использовать модуль записи csv для sh этого.

from csv import writer
def AddToCSV(List):
    with open("Output.csv", "a+", newline='') as output_file:
        csv_writer = writer(output_file)
        csv_writer.writerow(List)

# this can be used within your for loop
row_list = [item_url, product_title, price, etc..]
AddToCSV(row_list)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...