[英]Python get second for loop to second column in excel
所以我有一個來自零售網站的 web 抓取腳本,我已經成功地將名稱和價格抓取到 excel 中。 我也想為同一站點上的其他產品創建更多腳本,但遇到了一些麻煩。 基本上在我的其他腳本中,我只需使用 1 個容器即可達到價格。 但是,有了這個,我不得不制作另一個更深的容器,因為我不知道如何跳過 div 和 span 類。 因此,如您所見,我必須制作 2 個 for 循環,我得到了我想要的結果,但是當導出到 excel 時,它只導出第一列中的所有內容。 如果有一種方法可以跳過類,這樣我只能像以前一樣使用 1 for 循環,或者有一種方法來操作數據以便將它移到第二列,那將會有所幫助。
from bs4 import BeautifulSoup as soup
from urllib.request import urlopen as uReq
import requests
import os.path
page_url = "https://www.tenniswarehouse-europe.com/catpage-MSNIKE-EN.html"
save_path = 'C:\\Users\\Lefty\\Desktop\\Scrape Excels'
response = requests.get(page_url, cookies={'SMID':'smc_fbIdmC7VmLvxzHBD0pXTqbYo7kSYh69hqcKQ02xE_239306669'})
soup = soup(response.text, 'html.parser')
containers = soup.findAll("div", {"class":"product_wrapper shoe cf"})
containers1 = soup.findAll("div", {"class":"pricing"})
filename = "Nikes Men's Shoes"
completeName = os.path.join(save_path, filename+".csv")
f = open(completeName, 'w')
headers = "Name, Price\n"
f.write(headers)
for container in containers:
name = container.div.img['alt']
f.write(name + "," + '\n')
for container1 in containers1:
price = container1.span.span.text
f.write(price.replace(",", ".") + '\n')
您可以使用zip
function 而不是為每個分離的容器循環。 因此,您只需一個循環來寫入文件,如下所示:
for name_container, price_container in zip(containers, containers1):
name = name_container.div.img['alt']
price = price_container.span.span.text.replace(",", ".")
f.write(name+ "," + price + "\n")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.