【发布时间】:2023-01-20 23:30:06
【问题描述】:
我正在构建一个网络抓取工具,我能够打印我需要的所有数据,但我正在努力将数据添加到我的 csv 文件中,我觉得我需要添加另一个 for 循环甚至一个函数。目前我能够让它打印一行被抓取的数据值,但它会跳过其他 64 行数据值。
到目前为止,我已经尝试放入另一个 for 循环并将每个变量分解成它自己的函数,但它只是破坏了我的代码,这是我到目前为止所拥有的,我觉得我也只是遗漏了一些东西。
#Gets listing box
listingBox = searchGrid.find_elements(By.CLASS_NAME, 'v2-listing-card')
#Loops through each listing box
for listingBoxes in listingBox:
listingUrl = []
listingImg = []
listingTitle = []
listingPrice = []
#Gets listing url
listingUrl = listingBoxes.find_element(By.CSS_SELECTOR, 'a.listing-link')
print("LISTING URL:", listingUrl.get_attribute('href'))
#Gets listing image
listingImg = listingBoxes.find_element(By.CSS_SELECTOR, 'img.wt-position-absolute')
print("IMAGE:", listingImg.get_attribute('src'))
#Gets listing title
listingTitle = listingBoxes.find_element(By.CLASS_NAME, 'wt-text-caption')
print("TITLE:", listingTitle.text)
#Gets price
listingPrice = listingBoxes.find_element(By.CLASS_NAME, 'currency-value')
print("ITEM PRICE: $", listingPrice.get_attribute("innerHTML"))
#Gets seller name
# listingSellerName = listingBoxes.find_element(By.XPATH, '/html/body/main/div/div[1]/div/div[3]/div[8]/div[2]/div[10]/div[1]/div/div/ol/li/div/div/a[1]/div[2]/div[2]/span[3]')
# print("SELLER NAME:", listingSellerName.get_attribute("innerHTML"))
print("---------------")
finally:
driver.quit()
data = {'Listing URL': listingUrl, 'Listing Thumbnail': listingImg,'Listing Title': listingTitle, 'Listing Price': listingPrice}
df = pd.DataFrame.from_dict(data, orient='index')
df = df.transpose()
df.to_csv('raw_data.csv')
print('Data has been scrapped and added.')
【问题讨论】:
-
请提供更多信息,例如 url、页面源代码、到底什么不起作用(错误代码?)、您尝试过的内容以及脚本应该做什么。