我正在尝试编写一个允许用户输入新闻文章网址的脚本。然后它会读取该URL并将其删除以获取基本信息。我希望能够快速获取文章的标题,作者和内容。然后将其转储到文本文档中。
我遇到的问题是,似乎有很多不同的方法可以做到这一点,因为我是python的新手,我认为社区可能会对解决这个问题的最佳方法有所了解。感谢您的任何意见或指示。
更新*这里的核心问题似乎是抓取正确的数据。我需要的是能够从用户输入确定的新闻网站中删除段落。有什么建议吗?
答案 0 :(得分:2)
Beautiful Soup是最广泛使用的webscraping库之一,尤其适用于像这样的快速任务。以下是它的外观:
import urllib2
from bs4 import BeautifulSoup
page = urllib2.urlopen('http://yahoo.com').read()
soup = BeautifulSoup(page)
# The page's title without html tags
soup.title.string
在页面上查找特定项目(如文章作者)将取决于html结构,但它可能依赖于查找特定的css标记:
soup.find(id="author")
这是一个更具体的例子。假设您正在查看SFGate中的一堆文章,如下所示:http://blog.sfgate.com/energy/2014/02/07/tesla-driver-blames-fatal-crash-on-new-car-smell/
如果您查看来源,您会注意到文章标题是类<h1>
的{{1}}元素,而作者的名称是类blogtitle
内的链接<span>
。这相当于以下代码:
post-author
从该示例中可以看出,您需要自定义代码以适应每个网页的特定结构,因此它可能非常脆弱。有关所有血腥的详细信息,请参阅Beautiful Soup docs。