Web scraping 美化组,将数据附加到列中,而不是一个字符串

Web scraping 美化组,将数据附加到列中,而不是一个字符串,web-scraping,beautifulsoup,append,Web Scraping,Beautifulsoup,Append,我正在使用以下代码从网站获取一些数据 查找所有跨度元素的列表 span=页面\正文。查找\所有的'span',{'class':'vehicle tech spec'} 创建与元素文本对应的行列表 模型_详细信息=[span.get_span中span的文本] 打印模型详细信息 因此,我得到以下信息: ['05.2006', "137'800 km", 'Neu', '50 km', '10.2013', "97'000 km", '09.2015', &

我正在使用以下代码从网站获取一些数据

查找所有跨度元素的列表 span=页面\正文。查找\所有的'span',{'class':'vehicle tech spec'} 创建与元素文本对应的行列表 模型_详细信息=[span.get_span中span的文本] 打印模型详细信息 因此,我得到以下信息:

['05.2006', "137'800 km", 'Neu', '50 km', '10.2013', "97'000 km", '09.2015', "160'000 km", '04.2016', "138'000 km", '12.2017', "45'000 km", '05.2013', "90'000 km", '03.2013', "39'000 km", '01.2011', "131'400 km", '09.2017', "39'100 km", '05.2020', "9'900 km", '12.2015', "123'700 km", 'Neu', '15 km', '12.2019', "12'000 km", '06.2020', "22'200 km", 'Neu', '50 km', 'Neu', '50 km', '08.2016', "44'918 km", '03.2019', "25'725 km", '12.2017', "27'000 km"]
但我想这样做:

注册日期 里程 5.2006 137'800公里 纽 50公里 10.2013 97000公里 等 等
您能帮助处理这些跨度的父元素吗?也许那样我们可以有一个更好的解决方案。但假设表中的所有单元格都不为空,那么下面的修复方法暂时有效


只需将列表分成几块

以下是方法:

从表格导入表格 模型_详细信息=[ '2006年5月',137'800公里,'东北','50公里','2013年10月',97000公里,'2015年9月', 160000公里、2016年4月、138000公里、2017年12月、450000公里、2013年5月、, 9万公里、2013年3月、3.9万公里、2011年1月、131.400公里、2017年9月、, 39'100公里,'2020年5月5日',9'900公里,'2015年12月12日',123'700公里,'Neu','15公里', 2019年12月12日、2020年6月12日、2020年6月22日、200公里、东北、50公里、东北、, ‘50公里’、‘2016年8月’、‘44'918公里’、‘2019年3月’、‘25'725公里’、‘2017年12月’、‘27'000公里、, ] def chunk_itlist_to_chop:list,chunk_size:int=2->list: 返回[ 索引的列表到切块[索引:索引+块大小] 在0范围内,lenlist\u to\u chop,chunk\u size ] 表=制表 区块\u ITU模型\u详细信息, 标题=[第一列,第二列], tablefmt=漂亮, 打印表 输出:

+------------+-------------+
| Column One | Columnt Two |
+------------+-------------+
|  05.2006   | 137'800 km  |
|    Neu     |    50 km    |
|  10.2013   |  97'000 km  |
|  09.2015   | 160'000 km  |
|  04.2016   | 138'000 km  |
|  12.2017   |  45'000 km  |
|  05.2013   |  90'000 km  |
|  03.2013   |  39'000 km  |
|  01.2011   | 131'400 km  |
|  09.2017   |  39'100 km  |
|  05.2020   |  9'900 km   |
|  12.2015   | 123'700 km  |
|    Neu     |    15 km    |
|  12.2019   |  12'000 km  |
|  06.2020   |  22'200 km  |
|    Neu     |    50 km    |
|    Neu     |    50 km    |
|  08.2016   |  44'918 km  |
|  03.2019   |  25'725 km  |
|  12.2017   |  27'000 km  |
+------------+-------------+

您没有提到要查找哪种类型的数据输出

但这里有一个简单的例子来说明你的目标

如果您只是希望将数据写入.csv文件,而不是使用pandas,请考虑使用csv模块,否则如果您正在查找表,则可以使用PrettyTable

pip安装更多工具

从bs4导入BeautifulSoup 导入请求 从更多itertools导入分块 作为pd进口熊猫 def主URL: r=requests.geturl soup=BeautifulSoupr.text,“lxml” span=[x.get_textstrip=汤中x为真。选择'.vehicle tech spec'] 数据=listchunkedspans,2 printpd.DataFramedata,列=['Reg.Date','Miledge'] 主“Url-此处”
Div class=col-12 mb-4 mt-md-2 mt-sm-0 mt-xl-4是它的Div class。reg_日期和里程应为新标题,车型_详细信息可作为列删除
+------------+-------------+
| Column One | Columnt Two |
+------------+-------------+
|  05.2006   | 137'800 km  |
|    Neu     |    50 km    |
|  10.2013   |  97'000 km  |
|  09.2015   | 160'000 km  |
|  04.2016   | 138'000 km  |
|  12.2017   |  45'000 km  |
|  05.2013   |  90'000 km  |
|  03.2013   |  39'000 km  |
|  01.2011   | 131'400 km  |
|  09.2017   |  39'100 km  |
|  05.2020   |  9'900 km   |
|  12.2015   | 123'700 km  |
|    Neu     |    15 km    |
|  12.2019   |  12'000 km  |
|  06.2020   |  22'200 km  |
|    Neu     |    50 km    |
|    Neu     |    50 km    |
|  08.2016   |  44'918 km  |
|  03.2019   |  25'725 km  |
|  12.2017   |  27'000 km  |
+------------+-------------+