BeautifulSoup / lxml - 提取href,并将换行符转换为csv列?

时间:2016-07-18 18:21:02

标签: beautifulsoup lxml extract export-to-csv

我在本地保存了大量此页面,我正在努力提取内容并输入CSV格式。我有两个问题,整整两天我尝试了很多解决方案,很难在这里列出。

这是在线托管的网页,供参考:source page 和代码:

import csv

from bs4 import BeautifulSoup

soup = BeautifulSoup(open("/my/path/to/local/files/filename.html"), "lxml")

table = soup.find('table', attrs={ "class" : "report_column"})

headers = [header.text for header in table.find_all('th')]

rows = []

for row in table.find_all('tr'):
     rows.append([val.text.encode('utf8') for val in row.find_all('td')])

url = []

with open('output_file.csv', 'a') as csv_file:
     writer = csv.writer(csv_file)
     writer.writerow(["","License Num","Status","Type/ Dup.","Expir. Date","Primary Owner and Premises Addr.","Mailing Address","Action","Conditions","Escrow","District Code","Geo Code"])
     writer.writerows(row for row in rows if row)

第一个问题是我需要将csv的每一行与页面顶部显示的日期相关联,但也可以在所有cols标题的href中使用。我如何提取该href并加入或以某种方式在csv中添加一个独立的列?

第二个问题是,当获得具有多个换行符的cols(如Primary Owner和Mailing Address cols)时,我得到的单元格内容是一个长字符串。你能给我一些关于如何用管道描绘换行符的提示,或者理想地把它们放在独特的cols中,例如Owner1,Owner2,Owner3,Owner4,单元格中每行(最多4行)一行。

感谢您的帮助!

期望的输出:

现在我在主要所有者col中得到这个:
DBA:MECCA DELICATESSEN RAWLINGS,LINDA MAE 215预订RDMARINA,CA 93933

理想情况下,我可以获得四个cols,每行一个(由" BR"在表格中描绘):

col0 2017年7月12日(页面标题日期)
col6 DBA:MECCA DELICATESSEN RAWLINGS
col7 LINDA MAE
col8 215预订RD
col9 MARINA,CA 93933

0 个答案:

没有答案