Python Scrape 数据覆盖自身
Pyhton Scraped data overwrite itself
我正在尝试将此代码中的信息传输到 excel sheet,但它仅传输最新数据,据我了解,它会覆盖信息。
你认为我应该如何克服这个问题?你有什么建议?
from bs4 import BeautifulSoup
import requests
import pandas as pd
source = requests.get('url').text
soup = BeautifulSoup(source, 'lxml')
jobs = soup.find_all('div', class_='prd')
for job in jobs:
product_name = job.find('a', class_='prd-link')['title']
product_id = job.find('button', class_='prd-favorite btn-add-favorites')['data-product-id']
product_url = job.find('a', class_='prd-link')['href']
product_price = job.find('span', class_='prc prc-last').text
df =pd.DataFrame({
'Col A': [product_name],
'Col B': [product_id],
'Col C': [product_url],
'Col D': [product_price],
})
df.to_excel('test.xlsx')
将您的数据存储在 dicts
的 list
中,并根据这些创建您的 DataFrame
:
...
data = []
for job in jobs:
data.append({
'product_name' : job.find('a', class_='prd-link')['title'],
'product_id' : job.find('button', class_='prd-favorite btn-add-favorites')['data-product-id'],
'product_url' : job.find('a', class_='prd-link')['href'],
'product_price' : job.find('span', class_='prc prc-last').text,
})
pd.DataFrame(data).to_excel('test.xlsx')
...
我正在尝试将此代码中的信息传输到 excel sheet,但它仅传输最新数据,据我了解,它会覆盖信息。
你认为我应该如何克服这个问题?你有什么建议?
from bs4 import BeautifulSoup
import requests
import pandas as pd
source = requests.get('url').text
soup = BeautifulSoup(source, 'lxml')
jobs = soup.find_all('div', class_='prd')
for job in jobs:
product_name = job.find('a', class_='prd-link')['title']
product_id = job.find('button', class_='prd-favorite btn-add-favorites')['data-product-id']
product_url = job.find('a', class_='prd-link')['href']
product_price = job.find('span', class_='prc prc-last').text
df =pd.DataFrame({
'Col A': [product_name],
'Col B': [product_id],
'Col C': [product_url],
'Col D': [product_price],
})
df.to_excel('test.xlsx')
将您的数据存储在 dicts
的 list
中,并根据这些创建您的 DataFrame
:
...
data = []
for job in jobs:
data.append({
'product_name' : job.find('a', class_='prd-link')['title'],
'product_id' : job.find('button', class_='prd-favorite btn-add-favorites')['data-product-id'],
'product_url' : job.find('a', class_='prd-link')['href'],
'product_price' : job.find('span', class_='prc prc-last').text,
})
pd.DataFrame(data).to_excel('test.xlsx')
...