как экспортировать данные веб-очистки в CSV с помощью Python

#python #web-scraping #export-to-csv #export-to-excel

#python #веб-очистка #экспорт в csv #экспорт в Excel

Вопрос:

я веб-очистил данные с помощью Beautifulsoup и распечатал данные. теперь я хочу, чтобы импорт был импортирован в Excel / csv в моей программе ниже.я новичок в python нужна помощь есть несколько страниц, которые я очистил, теперь мне нужно экспортировать их в csv / Excel

 import requests
from urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
from bs4 import BeautifulSoup as bs

def scrape_bid_data():

page_no = 1 #initial page number
while True:
    print('Hold on creating URL to fetch data...')
    URL = 'https://bidplus.gem.gov.in/bidlists?bidlistsamp;page_no='   str(page_no) #create dynamic URL
    print('URL cerated: '   URL)

    scraped_data = requests.get(URL,verify=False) # request to get the data
    soup_data = bs(scraped_data.text, 'lxml') #parse the scraped data using lxml
    extracted_data = soup_data.find('div',{'id':'pagi_content'}) #find divs which contains required data

    if len(extracted_data) == 0: # **if block** which will check the length of extracted_data if it is 0 then quit and stop the further execution of script.
        break
    else:
        for idx in range(len(extracted_data)): # loops through all the divs and extract and print data
            if(idx % 2 == 1): #get data from odd indexes only because we have required data on odd indexes
                bid_data = extracted_data.contents[idx].text.strip().split('n')
                print('-' * 100)
                print(bid_data[0]) #BID number
                print(bid_data[5]) #Items
                print(bid_data[6]) #Quantitiy Required
                print(bid_data[10]   bid_data[12].strip()) #Department name and address
                print(bid_data[16]) #Start date
                print(bid_data[17]) #End date                   
                print('-' * 100)

        page_no  =1 #increments the page number by 1

 scrape_bid_data()
  

данные поступают в форме, подобной приведенной ниже:введите описание изображения здесь

Ответ №1:

Вы можете использовать pandas

 pip install pandas
  

объект может быть

 bid_data = []
for obj in list:
    obj= {
        "bid_data_0" :bid_data[0],
        "bid_data_5" :bid_data[5],
        "bid_data_6" :bid_data[6],
        "bid_data_10" :bid_data[10],
        "bid_data_12" :bid_data[12].strip(),
        "bid_data_17" :bid_data_17,
    }
bid_data.append(obj)
  

вы можете отформатировать bid_data в dict obj и в этот объект добавить только обязательное поле

 import pandas as pd

bid_data = pd.DataFrame(bid_data)
bid_data.to_csv("file_name.csv", index=True, encoding='utf-8')
  

это самый простой метод, который я когда-либо использовал для экспорта данных в csv.
Дайте мне знать, если возникнут какие-либо проблемы

Комментарии:

1. нужны только bid_data[0], bid_data[5], bid_data [6], bid_data [10], bid_data [16], bid_data [17] …. поскольку он может содержать мои необходимые данные.

2. Вы можете структурировать объект dict и предоставить ключи, которые будут использоваться pandas в качестве имени столбца. Добавьте эти объекты dict в определенный список в конце цикла for . что это

3. ануй, пожалуйста, можешь объединить свой ответ с моим кодом, я новичок в кодировании.