如何从抓取数据中删除模式和空白?



我已经收集了数据,但很难删除标记和空白,以便每个字符串单词可以迭代,然后作为一对添加到键

我将结果转换为字符串,使用映射函数和连接,然后使用正则表达式删除行空格,结果仍然有一些标签,但不能迭代字符串,因为它现在是字符串,即使我试图从字符串转换回列表。

datetime_end_list = []
datetime = soup.find_all(class_="cloture-line")
for dt in datetime:
df_text = dt.getText()
datetime_end_list.append(df_text)
print(datetime_end_list)
'rn                                            17/04/202311:00rn                                        ', 'n...nnnnnn', 'rn                                            28/02/202310:00rn                                        ', 'n...nnnnnn', 'rn                                            02/02/202311:00rn                                        ', 'n...nnnnnn', 'rn                                            01/02/202309:00rn                                        ', 'n...nnnnnn', 'rn                                            30/01/202310:00rn                                        ', 'n...nnnnnn', 'rn                                            25/01/202312:00rn                                        ', 'n...nnnnnn', 'rn                                            25/01/202309:00rn                                        ', 'n...nnnnnn', 'rn                                            24/01/202312:00rn                                        ', 'n...nnnnnn', 'rn                                            24/01/202311:00rn                                        ', 'n...nnnnnn', 'rn                                            24/01/202310:00rn                                        ', 'n...nnnnnn'

开始清洁:

datetime_clean = ' '.join(map(str,datetime_end_list))
datetime_clean2 = re.sub(r'^s+', '', datetime_clean, flags=re.MULTILINE)
print(datetime_clean2)
17/04/202311:00
...
28/02/202310:00
...
02/02/202311:00
...
01/02/202309:00
...
30/01/202310:00
...
25/01/202312:00
...
25/01/202309:00
...
24/01/202312:00
...
24/01/202311:00
...
24/01/202310:00
...

如果没有关于被抓取元素的额外信息,很难给出一个确切的答案,但根据您的输入,这应该指向一个方向。

删除空白或新行字符只需使用参数strip=True和删除...只需检查它们并只追加,如果它们不在df_text中:

for dt in datetime:
df_text = dt.getText(strip=True)
if '...' not in df_text:
datetime_end_list.append(df_text)

我可能会选择不同的元素选择,但这需要了解HTML结构。

最新更新