Python 将从beautifulsoup中刮取的数据放入csv文件

Python 将从beautifulsoup中刮取的数据放入csv文件,python,csv,web-scraping,beautifulsoup,web-crawler,Python,Csv,Web Scraping,Beautifulsoup,Web Crawler,我想把我从网站上抓取的数据放到一个csv文件中,我的第一次尝试是使用scrapy,但我无法获得正确的语法。当我设法使用beautifulsoup时,我只是不知道如何将其放入csv文件中 import requests from bs4 import BeautifulSoup URL = "https://www.practo.com/tests/glycosylated-haemoglobin-blood/p?city=delhi" page = requests.ge

我想把我从网站上抓取的数据放到一个csv文件中,我的第一次尝试是使用scrapy,但我无法获得正确的语法。当我设法使用beautifulsoup时,我只是不知道如何将其放入csv文件中

import requests
from bs4 import BeautifulSoup


URL = "https://www.practo.com/tests/glycosylated-haemoglobin-blood/p?city=delhi"
page = requests.get(URL)
#print(page)
soup=BeautifulSoup(page.content,'html.parser')
results = soup.find(id='root-app')
#print(results.prettify())
job_elems = results.find_all('div', class_='u-padrl--std')
#<h1 class="o-font-size--24 u-font-bold u-marginb--std">HbA1c Test</h1

for job_elem in job_elems:
    title_elem = job_elem.find('h1', class_='o-font-size--24 u-font-bold u-marginb--std')
    also_known = job_elem.find('span',class_="u-font-bold")
    cost = job_elem.find('div',class_="o-font-size--22 u-font-bold o-f-color--primary")
    what_test = job_elem.find('div',class_="c-markdown--unstyled")

    #test_prep = job_elem.find('div',class_="c-tabsection__content c-pp__accordion-item__content active")
    #temp = job_elem.find('p')
    print(title_elem.text)
    print(also_known.text)
    print(cost.text)
    print(what_test.text)
    #print(temp.text)
    #print(test_prep.text)
    print()

text_content = results.find_all('div',class_='c-markdown--unstyled')
# c-tabsection__content c-pp__accordion-item__content active
# c-tabsection c-pp__accordion-item u-br-rule u-padtb--std--half active
for item in text_content:
    prep = item.find('p')
    #,class_="c-tabsection__content c-pp__accordion-item__content active")
    print(prep.text)
    print('xxo')
导入请求
从bs4导入BeautifulSoup
URL=”https://www.practo.com/tests/glycosylated-haemoglobin-blood/p?city=delhi"
page=请求.get(URL)
#打印(第页)
soup=BeautifulSoup(page.content,'html.parser')
结果=soup.find(id='root-app')
#打印(results.prettify())
job_elems=results.find_all('div',class='u-padrl--std')
#HbA1c测试您可以使用该库

你可以使用图书馆

导入请求
从bs4导入BeautifulSoup
#导入csv模块
导入csv
URL=”https://www.practo.com/tests/glycosylated-haemoglobin-blood/p?city=delhi"
page=请求.get(URL)
#打印(第页)
soup=BeautifulSoup(page.content,'html.parser')
结果=soup.find(id='root-app')
#打印(results.prettify())
job_elems=results.find_all('div',class='u-padrl--std')
#糖化血红蛋白测试
导入请求
从bs4导入BeautifulSoup
#导入csv模块
导入csv
URL=”https://www.practo.com/tests/glycosylated-haemoglobin-blood/p?city=delhi"
page=请求.get(URL)
#打印(第页)
soup=BeautifulSoup(page.content,'html.parser')
结果=soup.find(id='root-app')
#打印(results.prettify())
job_elems=results.find_all('div',class='u-padrl--std')

#HbA1c测试是否回答了您的问题?不幸的是没有,先生@Joshmeranda看起来您希望使用以下列编写CSV:1。标题(要素2)。也知道3。成本4。什么文本?是的,伙计,这回答了你的问题吗?不幸的是没有,先生@Joshmeranda看起来您希望使用以下列编写CSV:1。标题(要素2)。也知道3。成本4。什么文本?没错,伙计@SeyiDanielI感谢你的努力,但我不太明白,我的意思是,你能用我的变量和程序编辑这个吗?我感谢你的努力,但我不太明白,我的意思是,你能用我的变量和程序编辑这个吗?我希望代码注释能为你提供足够的指导。我使用了Python内置的CSV模块。
字段
变量表示列标题,每个
作业元素
迭代的结果被追加到
列表中,该列表又被追加到
列表中。每个
代表CSV中的一行。我希望代码注释能为您提供足够的指导。我使用了Python内置的CSV模块。
字段
变量表示列标题,每个
作业元素
迭代的结果被追加到
列表中,该列表又被追加到
列表中。每个
代表CSV中的一行。
import xlsxwriter

workbook = xlsxwriter.Workbook("file.xlsx")
worksheet = workbook.add_worksheet()

worksheet.write(row, column, element)

workbook.close()
import requests
from bs4 import BeautifulSoup
# import the csv module 
import csv

URL = "https://www.practo.com/tests/glycosylated-haemoglobin-blood/p?city=delhi"
page = requests.get(URL)
#print(page)
soup=BeautifulSoup(page.content,'html.parser')
results = soup.find(id='root-app')
#print(results.prettify())
job_elems = results.find_all('div', class_='u-padrl--std')
#<h1 class="o-font-size--24 u-font-bold u-marginb--std">HbA1c Test</h1
rows = []
fields = ['title_elem', 'also_known', 'cost', 'what_test']
filename = "myfile.csv"
for job_elem in job_elems:
    title_elem = job_elem.find('h1', class_='o-font-size--24 u-font-bold u-marginb--std').text.encode("utf-8")
    also_known = job_elem.find('span',class_="u-font-bold").text.encode("utf-8")
    cost = job_elem.find('div',class_="o-font-size--22 u-font-bold o-f-color--primary").text.encode("utf-8")
    what_test = job_elem.find('div',class_="c-markdown--unstyled").text.encode("utf-8")
    row = [title_elem, also_known, cost, what_test]
    rows.append(row)

with open(filename, 'w') as csvfile: 
    # creating a csv writer object 
    csvwriter = csv.writer(csvfile)   
    # writing the fields 
    csvwriter.writerow(fields)   
    # writing the data rows 
    csvwriter.writerows(rows)

text_content = results.find_all('div',class_='c-markdown--unstyled')
# c-tabsection__content c-pp__accordion-item__content active
# c-tabsection c-pp__accordion-item u-br-rule u-padtb--std--half active
for item in text_content:
    prep = item.find('p')
    #,class_="c-tabsection__content c-pp__accordion-item__content active")
    print(prep.text)
    print('xxo')