我希望提取网页上呈现的部分数据。 我可以从页面中提取整个数据,并使用下面的代码将其保存在文本文件(RAW)中。
curl http://webpage -o "raw.txt"
只是想知道是否还有其他选择和优势。
答案 0 :(得分:7)
我会使用requests和BeautifulSoup的组合。
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)
保存/处理单个Web资源:上述方法适用于单个文件/ Web资源。您还可以根据预设模式管道正则表达式并切断/跳过数据。例如:保存所有标签 来源网址。
以递归方式保存/处理整个目录或网站:使用Python或Perl脚本可以迭代地下拉所有链接 和属于页面或网站的资源名称。在Python中我 将使用http lib并递归地解析标签(确保有一个深度限制或大型网站,你最终可能会保存数据!)。一个简单而安全的赌注是Beautiful Soup - 这是一个Python库,它可以废弃Web数据,导航,查看远程Web资源的解析树。它还可以修改已解析的本地内容等。
答案 3 :(得分:0)
您的示例代码将从网页中获取所有数据。如果您想解析网页并提取特定信息,我建议您使用一些现有的解析器。
我通常使用BeautifulSoup从html页面中提取数据。