我正在搜寻一个网站,以获取课程编号和课程名称。但是,如果课程编号没有名称,反之亦然,则应从最终输出中跳过数据。我不知道该怎么做。
from bs4 import BeautifulSoup
from urllib import urlopen
import csv
source = urlopen('https://www.rit.edu/study/computing-security-bs')
csv_file1 = open('scrape.csv', 'w')
csv_writer = csv.writer(csv_file1)
csv_writer.writerow(['Course Number', 'Course Name'])
soup = BeautifulSoup(source, 'lxml')
table = soup.find('div', class_='processed-table')
#print(table)
curriculum = table.find('curriculum')
#print(curriculum.prettify())
next = curriculum.find('table', class_='table-curriculum')
#print(next.prettify())
for course_num in next.find_all('tr', class_='hidden-row rows-1'):
num = course_num.find_all('td')[0]
real = num.get_text()
# print(real)
realstr = real.encode('utf-8')
name = course_num.find('div', class_='course-name')
realname = name.get_text()
# print(realname)
realnamestr = realname.encode('utf-8')
csv_writer.writerow([realstr, realnamestr])
csv_file1.close()
这是我的csv csv 我想摆脱最后4行。
答案 0 :(得分:0)
正如@zvone所建议的,继续将在此处完成工作。如您提到的那样编写此答案,您并不知道该关键字。
在此之前,csv_writer.writerow([realstr, realnamestr])
只需放置一个if
来检查realstr
和continue
:
if realstr.stip() == "":
continue
我认为您仍然应该使用continue
,break
和else
关键字,以及它们如何对控制循环起到帮助作用。
另一种方法是仅在csv_writer
具有一定值时才将数据放入realstr
。所以:
if realstr.strip != "":
csv_writer.writerow([realstr, realnamestr])