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

How to remove patterns and whitespaces from a scraped data?

提问人:Arinze 提问时间:12/11/2022 最后编辑:HedgeHogArinze 更新时间:12/11/2022 访问量:73

问:

我已经抓取了数据,但很难删除标签和空格,以便每个字符串单词都可以迭代,然后作为一对添加到键中

我将结果转换为字符串,使用 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
...
python-3.x 网页抓取 beautifulsoup strip-tags

评论

1赞 Jaky Ruby 12/11/2022
你能分享一个你废弃的东西的例子,以及你到目前为止拥有的代码吗?请分享您的代码,而不是屏幕截图
0赞 Arinze 12/11/2022
我已经做到了,谢谢
0赞 Jaky Ruby 12/11/2022
添加 html 和您的代码示例,但请不要在屏幕截图中。
0赞 Arinze 12/11/2022
好吧,我做了正确的事情@JakyRuby

答:

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
它也适用于字符串,谢谢你