Python 将从beautifulsoup中刮取的数据放入csv文件
我想把我从网站上抓取的数据放到一个csv文件中,我的第一次尝试是使用scrapy,但我无法获得正确的语法。当我设法使用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
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')