【发布时间】:2019-05-24 00:21:44
【问题描述】:
我正在使用以下代码来解析来自法国新闻网站的文章。获取所有段落时,我一直缺少一些文本。这是为什么?
这是我的代码:带有XX的代码是最相关的,其他部分只是我把它放在我自己的结构中使用。
def getWordList(sent,wordList):
listOfWords = list((sent).split())
for i in listOfWords:
i = i.replace("."," ")
i = i.replace(","," ")
i = i.replace('\"'," ")
valids = re.sub(r"[^A-Za-z]+", '', i)
if(len(i) > 3 and (i.lower() not in stopWords) and i.isnumeric() !=
True and valids):
wordList[valids] = {}
wordList[valids]["definition"] = ""
wordList[valids]["status"] = ""
def parse(link):
page = requests.get(link)
tree = html.fromstring(page.content)
XXword = tree.xpath('//*[@class="article__content old__article-content-single"]')
articleContent = {}
articleContent["words"] = {}
articleContent["language"] = "French";
wordList = articleContent["words"]
contentList = []
XXpTag = word[0].xpath('//*')
pText = {}
for x in range(len(pTag)):
#print(pTag[x].get("class"))
if(pTag[x].text != None):
if(pTag[x].tail != None):
print("tail")
XXtext = pTag[x].text + pTag[x].tail
else:
print("no tail")
XXtext = pTag[x].text
XXif(pTag[x].get("class") == "article__paragraph "):
print(pTag[x].get("class"))
print(text)
getWordList(text,wordList)
pText[text] = {}
pText[text]["status"] = ""
pText[text]["type"] = "p"
XXelif(pTag[x].get("class") == "article__sub-title"):
print(pTag[x].get("class"))
getWordList(text,wordList)
pText[text] = {}
pText[text]["status"] = ""
pText[text]["type"] = "h2"
我成功地获得了所有突出显示的文本,但其余的都丢失了,不是中间的文本我成功地避免了这种情况。我只想要其中不包含的文本。
感谢您的帮助!!
【问题讨论】:
-
“不是中间的文字,我成功地避免了”是什么意思?是不是以“Lire aussi”开头的那一段?
-
是的,我不知道该评论是否有必要,我只是想确保人们不会因为试图获取这些链接而陷入困境。我只是主要段落中的文字之一。
-
什么是
getWordList()? -
我用来将句子中的每个单词都放入列表的功能,效果很好
-
即使运行良好,也需要发布,否则无法检查您上面的代码。
标签: python parsing html-parsing lxml article