脚本从网页中提取数据

时间:2012-05-29 21:39:10

标签: python

我希望提取网页上呈现的部分数据。 我可以从页面中提取整个数据,并使用下面的代码将其保存在文本文件(RAW)中。

curl http://webpage -o "raw.txt"

只是想知道是否还有其他选择和优势。

4 个答案:

答案 0 :(得分:7)

我会使用requestsBeautifulSoup的组合。

import requests
import BeautifulSoup

session = requests.session()

req = session.get('http://stackoverflow.com/questions/10807081/script-to-extract-data-from-wbpage')

doc = BeautifulSoup.BeautifulSoup(req.content)

print doc.findAll('a', { "class" : "gp-share" })

答案 1 :(得分:1)

cURL是一个好的开始。更好的命令行将是:

curl -A "Mozilla/5.0" -L -k -b /tmp/c -c /tmp/c -s http://url.tld

因为它使用cookie,用户代理,SSL证书和其他东西。

请参阅man curl

答案 2 :(得分:1)

  1. 保存/处理单个Web资源:上述方法适用于单个文件/ Web资源。您还可以根据预设模式管道正则表达式并切断/跳过数据。例如:保存所有标签 来源网址。

  2. 以递归方式保存/处理整个目录或网站:使用Python或Perl脚本可以迭代地下拉所有链接 和属于页面或网站的资源名称。在Python中我 将使用http lib并递归地解析标签(确保有一个深度限制或大型网站,你最终可能会保存数据!)。一个简单而安全的赌注是Beautiful Soup - 这是一个Python库,它可以废弃Web数据,导航,查看远程Web资源的解析树。它还可以修改已解析的本地内容等。

答案 3 :(得分:0)

您的示例代码将从网页中获取所有数据。如果您想解析网页并提取特定信息,我建议您使用一些现有的解析器。

我通常使用BeautifulSoup从html页面中提取数据。