Cómo obtener datos raspados en la web en formato tabular mediante el uso de archivos CSV o archivos de texto (no usando Pandas) -- python-3.x campo con list campo con csv campo con web-scraping campo con beautifulsoup camp Relacionados El problema

how to get web-scraped data into tabular format by using csv files or text files (no using pandas)


0
vote

problema

Español

Tengo datos raspados de un sitio web y debo convertirme en un archivo CSV y luego leer ese archivo y mostrarlo

Por favor, no use Pandas y conviértela en un flujo de datos y luego convertirlo a un archivo CSV

Quiero una forma en que los datos raspados se escriban directamente en un archivo CSV y, entonces, también los datos del archivo CSV deben ser leídos y mostrados en Python inact

El siguiente es el código

  import requests from bs4 import BeautifulSoup  start_url="https://www.indeed.co.in/jobs?q=teacher&l=India" page_data=requests.get(start_url) #sending a http request to the site soup=BeautifulSoup(page_data.content,"html.parser") #getting that requested data to store in an object  #lists in which the data is going to be appended Title=[] Company=[] Summary=[] Location=[] Link_to_apply=[]     for job_tag in soup.find_all("div",class_="jobsearch-SerpJobCard unifiedRow row result"):        title=job_tag.find("h2",class_="title")     company=job_tag.find("span",class_="company")     location=job_tag.find(class_="location accessible-contrast-color-location").text.strip()     summary=job_tag.find("div",class_="summary")     link=job_tag.find("a",href=True)     base_url="https://www.indeed.com"     final_link=base_url+link["href"]     Title.append(title.text.replace('/n'," ").strip())   ###text removes all the unwanted text and gives only the data    Company.append(company.text.replace(' '," ").strip())## replace() its replces new lines with just 1 space bar    Summary.append(summary.text.replace(' '," ").strip())#strip() replaces all leading and trailing spaces    Location.append(location.replace(' '," "))    Link_to_apply.append(final_link)   

Tenga en cuenta que solo Python inactivo se puede utilizar

Original en ingles

i have data scraped from a website and i need to make it into into a csv file and then read that file and display it

please dont use pandas and convert it into a dataframe and then convert that to a csv file

i want a way where the scraped data is directly written to a csv file and then also the data from the csv file needs to be read and displayed in python idle

the following is the code

import requests from bs4 import BeautifulSoup  start_url="https://www.indeed.co.in/jobs?q=teacher&l=India" page_data=requests.get(start_url) #sending a http request to the site soup=BeautifulSoup(page_data.content,"html.parser") #getting that requested data to store in an object  #lists in which the data is going to be appended Title=[] Company=[] Summary=[] Location=[] Link_to_apply=[]     for job_tag in soup.find_all("div",class_="jobsearch-SerpJobCard unifiedRow row result"):        title=job_tag.find("h2",class_="title")     company=job_tag.find("span",class_="company")     location=job_tag.find(class_="location accessible-contrast-color-location").text.strip()     summary=job_tag.find("div",class_="summary")     link=job_tag.find("a",href=True)     base_url="https://www.indeed.com"     final_link=base_url+link["href"]     Title.append(title.text.replace('/n'," ").strip())   ###text removes all the unwanted text and gives only the data    Company.append(company.text.replace('\n'," ").strip())## replace() its replces new lines with just 1 space bar    Summary.append(summary.text.replace('\n'," ").strip())#strip() replaces all leading and trailing spaces    Location.append(location.replace('\n'," "))    Link_to_apply.append(final_link) 

please note only python idle can be used

              

Lista de respuestas

1
 
vote
vote
La mejor respuesta
 

Usted ha hecho dos preguntas de una sola vez. El siguiente enfoque debe responderlos a ambos. La primera parte de ella escribe los datos de raspado en un archivo CSV y la última parte de él lee los datos del archivo CSV recién creado. Será mejor que coloque el script en una carpeta y ejecute para que pueda obtener el archivo CSV dentro de la misma carpeta.

  import csv import requests from bs4 import BeautifulSoup  base_url = "https://www.indeed.com" start_url = "https://www.indeed.co.in/jobs?q=teacher&l=India"  page_data = requests.get(start_url) soup = BeautifulSoup(page_data.content,"html.parser")  with open("output.csv","w",newline="",encoding="utf-8-sig") as f:     writer = csv.writer(f)     writer.writerow(['title','company','location','summary','final_link'])     for job_tag in soup.find_all("div",class_="jobsearch-SerpJobCard"):           title = job_tag.find("h2",class_="title").get_text(strip=True)         company = job_tag.find("span",class_="company").get_text(strip=True)         location = job_tag.find(class_="location").get_text(strip=True)         summary = job_tag.find("div",class_="summary").get_text(strip=True)         link = job_tag.find("a",href=True)         final_link = base_url + link["href"]         writer.writerow([title,company,location,summary,final_link])  with open("output.csv","r",encoding="utf-8-sig") as r:     reader = csv.DictReader(r)     for item in reader:         print(item['title'],item['company'])   
 

You have asked two questions in one go. The following approach should answer both of them. The first part of it write the scrape data in a csv file and the last part of it reads the data from the newly created csv file. You better put the script in a folder and execute it so that you can get the csv file within the same folder.

import csv import requests from bs4 import BeautifulSoup  base_url = "https://www.indeed.com" start_url = "https://www.indeed.co.in/jobs?q=teacher&l=India"  page_data = requests.get(start_url) soup = BeautifulSoup(page_data.content,"html.parser")  with open("output.csv","w",newline="",encoding="utf-8-sig") as f:     writer = csv.writer(f)     writer.writerow(['title','company','location','summary','final_link'])     for job_tag in soup.find_all("div",class_="jobsearch-SerpJobCard"):           title = job_tag.find("h2",class_="title").get_text(strip=True)         company = job_tag.find("span",class_="company").get_text(strip=True)         location = job_tag.find(class_="location").get_text(strip=True)         summary = job_tag.find("div",class_="summary").get_text(strip=True)         link = job_tag.find("a",href=True)         final_link = base_url + link["href"]         writer.writerow([title,company,location,summary,final_link])  with open("output.csv","r",encoding="utf-8-sig") as r:     reader = csv.DictReader(r)     for item in reader:         print(item['title'],item['company']) 
 
 
         
         

Relacionados problema

1  Leer contenidos de <script> con BeautifulSoUP  ( Read contents of script with beautifulsoup ) 
He estado tratando de leer la fuente de un sitio web con lo siguiente: AttributeSet attrs0 Además lo limito como AttributeSet attrs11111 . Una muestra ...

1  ¿Hay alguna manera de obtener un zestimado de "esta casa" para enero de cada año de 2015-2020 usando selenio de hermosa sopa? [duplicar]  ( Is there a way to get a zestimate of this home for january of every year from ) 
Esta pregunta ya tiene respuestas aquí : Sitio web de raspado con evento dinámico de moxever ...

0  El raspado sigue obteniendo un error solo algunas de las veces  ( Scraping keeps getting an error just some of the times ) 
Estoy tratando de raspar la información de la receta de allrecipes.com y guardarla en mi base de datos en MySQL. Primero intenté recuperar la información a ...

0  Amazon Iniciar sesión y Acess A Pedidos  ( Amazon login and acess to orders ) 
problema: Me he leído a mí mismo a través de artículos durante días e intente iniciar sesión en mi cuenta de Amazon con Python. Pero estoy fallando cada vez...

0  ¿Cómo analizar y eliminar un mensaje de texto con PygoogleVoice?  ( How to parse and delete a text message with pygooglevoice ) 
Estoy tratando de utilizar PyGoogleVoice para recibir un mensaje y luego eliminarlo de inmediato con su ID usando delete() pero no puedo resolverlo. Aquí ...

1  BeautifulSoup no está reconociendo los caracteres UTF-8 incluso después de usar "FROMENCODING = UTF-8"  ( Beautifulsoup isnt recognizing utf 8 characters even after using fromencoding ) 
Escribí un script simple que solo toma una página web y extrae los contenidos de la misma a una lista tocada. Sin embargo, estoy llegando a un problema en el ...

0  Beautifulsoup para recuperar la lista de HREF  ( Beautifulsoup to retrieve the href list ) 
¡Gracias por la atención! Estoy tratando de recuperar el HREF de productos en el resultado de la búsqueda. Por ejemplo, esta página: Sin embargo, cuando se ...

0  ¿Cómo obtengo los valores de padres y anidados usando BeautifulSoup?  ( How do i get parent and nested values using beautifulsoup ) 
Estoy usando BeautifulSoup para extraer categorías y subcategorías de una página HTML. El HTML se ve así: <a class='menuitem submenuheader' href='#'>Bevera...

5  Problema raspado con hermosa sopa  ( Issue scraping with beautiful soup ) 
He estado raspando los sitios web antes de usar esta misma técnica. Pero con este sitio web parece no funcionar. import urllib2 from BeautifulSoup import B...

4  Usando Python para visitar un enlace e imprimir datos [cerrados]  ( Using python to visit a link and print data ) 
cerrado. Esta pregunta necesita Detalles de depuración . Actualmente no está aceptando respuestas. ...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos