我想从新闻网页中提取段落的内容(文本全部),我有一组url,它应该只提取段落的内容。当我使用下面的代码时,它给了我整个HTML页面 这是我的代码
import urllib2
import urllib
from cookielib import CookieJar
from bs4 import BeautifulSoup
cj = CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
p = opener.open("http://www.nytimes.com/2014/09/09/world/europe/turkey-is-courted-by-us-to-help- fight-isis.html?module=Search&mabReward=relbias%3Aw%2C%7B%222%22%3A%22RI%3A18%22%7D&_r=0")
print p.read()
soup = BeautifulSoup(p)
content = soup.find('p', attrs= {'class' : 'story-body-text story-content'})
print content
答案 0 :(得分:2)
这是因为你有print p.read()
行打印出整个HTML页面。
要获取文章文本,请按id
找到它,然后找到文章中的所有段落。
使用CSS Selector
的示例:
soup = BeautifulSoup(p)
print ''.join(p.text for p in soup.select('article#story p.story-content'))
打印:
ANKARA, Turkey — The Obama administration on Monday began the work of trying to determine
...
仅供参考,article#story p.story-content
会匹配p
标记中story-content
类article
个story
个标记{。}}