0
我意识到这可能是一个非常具体的问题,但我努力摆脱使用下面的代码获得的文本的某些部分。我需要一个普通的文章文本,通过在'class'下找到“p”标签来找到:'mol-para-with-font'。不知何故,我得到了许多其他的东西,比如作者的副标题,日期标记,最重要的是来自广告页面的文本。检查html我看不到它们包含相同的'class':'mol-para-with-font',所以我很困惑(或者我一直在盯着它太长时间...)。我知道这里有很多html大师,所以我会很感激你的帮助。Beautifulsoup:排除不需要的部分
我的代码:
import requests
import translitcodec
import codecs
def get_text(url):
r = requests.get(url)
soup = BeautifulSoup(r.content, "lxml")
# delete unwanted tags:
for s in soup(['figure', 'script', 'style', 'table']):
s.decompose()
article_soup = [s.get_text(separator="\n", strip=True) for s in soup.find_all(['p', {'class':'mol-para-with-font'}])]
article = '\n'.join(article_soup)
text = codecs.encode(article, 'translit/one').encode('ascii', 'replace') #replace traslit with ascii
text = u"{}".format(text) #encode to unicode
print text
url = 'http://www.dailymail.co.uk/femail/article-4703718/How-Alexander-McQueen-Kate-s-royal-tours.html'
get_text(url)
谢谢。我现在可以看到我被带走了太多的支架等...... :) – aviss