我试图从一个网页中提取文本,并将其输出为一个字符串,该字符串由构成文本句子/段落的每个单词组成。不过,我似乎无法将各个句子/段落连接起来。我想可能是因为空格或换行,但在同一个问题中尝试删除这些结果。你知道吗
有人能看看我的代码,解释一下我做错了什么吗?(解释非常有帮助,所以我可以完全理解您的更正。)
这是我的密码:
import requests, re, json
from bs4 import BeautifulSoup
urls = ['http://t24.com.tr/haber/suriyelilere-vatandasliga-neden-karsi-cikiliyor,348652', 'http://t24.com.tr/haber/oteki-suriyeliler-turkiye-vatandasi-olursak-askere-gideriz-akpye-oy-verir-miyim-bilmiyorum,349206', 'http://t24.com.tr/haber/konyada-turklerle-suriyeliler-arasinda-kopege-niye-tekme-attin-kavgasi-3-olu-2-yarali,349208']
for url in urls:
html = requests.get(url).text
soup = BeautifulSoup(html, "html.parser")
paragraphs = soup.findAll('p', {"class" : "p1"})
for p in paragraphs:
text = p.text.replace(',', '').replace('"', '').replace('.', '').replace("'", "").replace('?', '').replace("\n", "").replace('\r', '')
print(text)
我的输出当前如下所示:
Selin Girit
Kendi ülkesinde savaştan kaçacak sınavsız okula girip askerlik yapmayacak 10 yıl sonra benden iyi yaşayacak #ÜlkemdeSuriyeliİstemiyorum
Cumhurbaşkanı Recep Tayyip Erdoğanın Türkiyede yaşayan Suriyeli mültecilere
我想要的是:
Selin Girit Kendi ülkesinde savaştan kaçacak sınavsız okula girip askerlik yapmayacak 10 yıl sonra benden iyi yaşayacak #ÜlkemdeSuriyeliİstemiyorum Cumhurbaşkanı Recep Tayyip Erdoğanın Türkiyede yaşayan Suriyeli mültecilere
首先:在对每个soup执行任何操作之前,先为第一个for循环中的每个url创建一个新的soup。因此,使用代码只能从
urls
中的最后一个url获取文本。你应该做的第一件事是把段落循环放在url循环中。你知道吗soup.findAll()
返回一个迭代器paragraphs
,该迭代器包含页面上的所有p标记。在循环段落之前,您可以创建一个空字符串full_string
,然后将每个段落添加到此空字符串中以获得所需的结果。如下所示。你知道吗相关问题 更多 >
编程相关推荐