gpt4 book ai didi

beautifulsoup - 从外部文件中删除多余的垃圾字符

转载 作者:行者123 更新时间:2023-12-04 10:36:53 38 4
gpt4 key购买 nike

这段代码正确地从我的博客中提取了马拉地语文本。我很欣赏使用漂亮的汤和正则表达式是多么容易。

from bs4 import BeautifulSoup
import requests, re

url = "http://shabdasampada.blogspot.com/2020/01/blog-post_29.html"

headers = requests.utils.default_headers()
req = requests.get(url, headers)
soup = BeautifulSoup(req.content, 'html.parser')
text = soup.get_text()

p = re.compile(r'[^\u0900-\u097F\n]')
for line in text.splitlines():
cleaned = p.sub(' ', line)
if cleaned.strip():
print(cleaned)

但是我可以在最后几行看到一些垃圾字符。像这样...

"ल क म ळव ल क म ळव"



我如何删除这些行?

更新:

我的代码返回这个:

नाबर की नंबर स्वभाषेत टंकलेखन साहाय्य २९ जानेवारी २०२० नाबर की नंबर गुगलने मशीन लर्निंगचा वापर करून सर्च रिझल्ट दाखवायला सुरुवात केली त्याला आता फार नाही पण एक दोनच महिने झाले असतील काही बाबतीत रिझल्टमध्ये सुधारणा झाली असली तरी इतर बऱ्याच बाबतीत आणि विशेषतः देवनागरी सर्चची क्वालिटी घसरलेली दिसते आज मी मंगेश नाबर या व्यक्तीची माहिती गुगलून पाहिली तर मंगेश आणि नंबर हे दोन शब्द असलेली पाने पहिल्या पानावर दिसत आहेत बहुतेक गुगलने नाबर या शब्दाला बदलून नंबर केले असावे द्वारा पोस्ट केलेले येथे १० ०४ म पू लेबल हे राम कोणत्याही टिप्पण् या नाहीत टिप्पणी पोस्ट करा नवीनतम पोस्ट थोडे जुने पोस्ट मुख्यपृष्ठ याची सदस्यता घ्या टिप्पणी पोस्ट करा
ब्लॉग संग्रहण मनोगताचा स्पेल चेकर बसलय की बसलंय नाबर की नंबर स्पर्धापरीक्षेचा खरा धोका माझ्याबद्दल माझे पूर्ण प्रोफाइल पहा ल क म ळव ल क म ळव
वर श अर कर ह ब
ल गकर ह ब
ल गकर
वर श अर कर
वर श अर कर ईम ल ईम ल
अध क व च
न बर क न बर
न बर क न बर
स प दन ल क क
ल पब र डवर क प क ल
ठ क आह ल क प स ट कर
न बर क न बर ग गलन
मश न लर न गच व पर कर न सर च र झल ट द खव यल स र व
त क ल त य ल आत फ र न
ह पण एक द नच मह न झ ल असत

                                                                                                                                                                                      ल       ड ह       त आह


我的问题是以下部分在页面上的任何地方都看不到。我想知道它的起源。

क म ळव ल क म ळव
वर श अर कर ह ब
ल गकर ह ब
ल गकर
वर श अर कर
वर श अर कर ईम ल ईम ल
अध क व च
न बर क न बर
न बर क न बर
स प दन ल क क
ल पब र डवर क प क ल
ठ क आह ल क प स ट कर
न बर क न बर ग गलन
मश न लर न गच व पर कर न सर च र झल ट द खव यल स र व
त क ल त य ल आत फ र न
ह पण एक द नच मह न झ ल असत

                                                                                                                                                                                      ल       ड ह       त आह


更新 2:

我忘了删除javascript!
for script in soup(["script", "style"]):
script.decompose()
text = soup.get_text()

最佳答案

您获得的数据仅来自博客,因为您没有准确指定您想要什么,所以您正在获得一切。

假设你只想要

enter image description here

然后你必须指定到 BeautifulSoup 正是这部分,仅此而已。

您的代码正在从该页面读取所有内容:

输出:

                           नाबर की नंबर 
स्वभाषेत टंकलेखन साहाय्य
२९ जानेवारी २०२०
नाबर की नंबर
गुगलने मशीन लर्निंगचा वापर करून सर्च रिझल्ट दाखवायला सुरुवात केली त्याला आता फार नाही पण एक दोनच महिने झाले असतील
काही बाबतीत रिझल्टमध्ये सुधारणा झाली असली तरी इतर बऱ्याच बाबतीत आणि विशेषतः देवनागरी सर्चची क्वालिटी घसरलेली दिसते आज मी मंगेश नाबर या व्यक्तीची माहिती गुगलून पाहिली तर मंगेश आणि नंबर हे दोन शब्द असलेली पाने पहिल्या पानावर दिसत आहेत बहुतेक गुगलने नाबर या शब्दाला बदलून नंबर केले असावे
द्वारा पोस्ट केलेले
येथे
१० ०४ म पू
लेबल
हे राम
कोणत्याही टिप्पण् या नाहीत
टिप्पणी पोस्ट करा
नवीनतम पोस्ट
थोडे जुने पोस्ट
मुख्यपृष्ठ
याची सदस्यता घ्या
टिप्पणी पोस्ट करा
ब्लॉग संग्रहण
मनोगताचा स्पेल चेकर
बसलय की बसलंय
नाबर की नंबर
स्पर्धापरीक्षेचा खरा धोका
माझ्याबद्दल
माझे पूर्ण प्रोफाइल पहा
ल क म ळव ल क म ळव वर श अर कर ह ब ल गकर ह ब ल गकर वर श अर कर वर श अर कर ईम ल ईम ल अध क व च न बर क न बर न बर क न बर स प दन ल क क ल पब र डवर क प क ल ठ क आह ल क प स ट कर न बर क न बर ग गलन मश न लर न गच व पर कर न सर च र झल ट द खव यल स र व त क ल त य ल आत फ र न ह पण एक द नच मह न झ ल असत ल
ल ड ह त आह

但与:
from bs4 import BeautifulSoup
import requests, re

url = "http://shabdasampada.blogspot.com/2020/01/blog-post_29.html"

headers = requests.utils.default_headers()
req = requests.get(url, headers)
soup = BeautifulSoup(req.content, 'html.parser')

h=soup.find_all('div', attrs={'class':"post hentry uncustomized-post-template"})[0]

text = h.get_text()

p = re.compile(r'[^\u0900-\u097F\n]')
for line in text.splitlines():
cleaned = p.sub(' ', line)
if cleaned.strip():
print(cleaned)

输出将是:
नाबर की नंबर 
गुगलने मशीन लर्निंगचा वापर करून सर्च रिझल्ट दाखवायला सुरुवात केली त्याला आता फार नाही पण एक दोनच महिने झाले असतील
काही बाबतीत रिझल्टमध्ये सुधारणा झाली असली तरी इतर बऱ्याच बाबतीत आणि विशेषतः देवनागरी सर्चची क्वालिटी घसरलेली दिसते आज मी मंगेश नाबर या व्यक्तीची माहिती गुगलून पाहिली तर मंगेश आणि नंबर हे दोन शब्द असलेली पाने पहिल्या पानावर दिसत आहेत बहुतेक गुगलने नाबर या शब्दाला बदलून नंबर केले असावे
द्वारा पोस्ट केलेले
येथे
१० ०४ म पू
लेबल
हे राम

您可以看到我指定了包含您需要的数据的 div
h=soup.find_all('div', attrs={'class':"post hentry uncustomized-post-template"})[0]

要检查这一点,您必须检查网页的 html 以确切知道您想要的数据在哪里。为此,您可以在 chrome 中使用 Ctrl+Shift+i。

我建议你看一下 this发布更多信息

最后一个问题

您看到的垃圾数据仅来自您的网站。

BeautifulSoup 从页面源获取数据,并且由于您没有提到任何条件来告诉它您想要什么数据,因此您将获得所有数据。
要了解您的垃圾数据来自何处,请查看您的页面来源
网站。

如果您查看页面源代码,您会在 html 代码的末尾发现这些垃圾。

enter image description here

这是您在输出中看到的所有垃圾的来源。

如果您进行此更改:
代替' cleaned '打印' line '
p = re.compile(r'[^\u0900-\u097F\n]')
for line in text.splitlines():
cleaned = p.sub(' ', line)
if cleaned.strip():
print(line)

你最终会以这种方式看到很多垃圾数据……垃圾数据实际上存在于你页面的源代码和代码中,因为你只过滤了一组特定的字符,你只看到了那些

关于beautifulsoup - 从外部文件中删除多余的垃圾字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60133582/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com