从python web scrape返回内容

时间:2014-02-07 22:33:17

标签: python scrape

我正在尝试编写一个允许用户输入新闻文章网址的脚本。然后它会读取该URL并将其删除以获取基本信息。我希望能够快速获取文章的标题,作者和内容。然后将其转储到文本文档中。

我遇到的问题是,似乎有很多不同的方法可以做到这一点,因为我是python的新手,我认为社区可能会对解决这个问题的最佳方法有所了解。感谢您的任何意见或指示。

更新*这里的核心问题似乎是抓取正确的数据。我需要的是能够从用户输入确定的新闻网站中删除段落。有什么建议吗?

1 个答案:

答案 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