提问人:Arinze 提问时间:12/11/2022 最后编辑:HedgeHogArinze 更新时间:12/11/2022 访问量:73
如何从抓取的数据中删除模式和空格?
How to remove patterns and whitespaces from a scraped data?
问:
我已经抓取了数据,但很难删除标签和空格,以便每个字符串单词都可以迭代,然后作为一对添加到键中
我将结果转换为字符串,使用 map 函数和连接,然后使用正则表达式删除行空,结果仍然有一些标签,但无法迭代字符串,因为即使我尝试从字符串转换回列表,它现在也是一个字符串。
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)
'\r\n 17/04/202311:00\r\n ', '\n...\n\n\n\n\n\n', '\r\n 28/02/202310:00\r\n ', '\n...\n\n\n\n\n\n', '\r\n 02/02/202311:00\r\n ', '\n...\n\n\n\n\n\n', '\r\n 01/02/202309:00\r\n ', '\n...\n\n\n\n\n\n', '\r\n 30/01/202310:00\r\n ', '\n...\n\n\n\n\n\n', '\r\n 25/01/202312:00\r\n ', '\n...\n\n\n\n\n\n', '\r\n 25/01/202309:00\r\n ', '\n...\n\n\n\n\n\n', '\r\n 24/01/202312:00\r\n ', '\n...\n\n\n\n\n\n', '\r\n 24/01/202311:00\r\n ', '\n...\n\n\n\n\n\n', '\r\n 24/01/202310:00\r\n ', '\n...\n\n\n\n\n\n'
开始清洁:
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
...
答:
1赞
HedgeHog
12/11/2022
#1
如果没有关于抓取元素的其他信息,很难给出确切的答案,但根据您的输入,这应该指向一个方向。
删除空格或换行符只需使用参数 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 结构。
评论
0赞
Arinze
12/11/2022
如果文本是字符串,也可以应用此逻辑吗@HedgeHog
0赞
HedgeHog
12/11/2022
这将注定会提出一个新问题,并确切地关注这个重点以及输入字符串和预期输出的示例 - 剥离一个字符串并检查它是否包含一般可能的内容,但取决于您的需求。只需将链接拖放到您的新问题,我们就会看看。
1赞
Arinze
12/11/2022
它也适用于字符串,谢谢你
评论