2024-05-14 22:28:32 发布
网友
我希望提取网页上呈现的数据的某些部分。 我可以从页面中提取整个数据,并使用下面的代码将其保存在文本文件(RAW)中。
curl http://webpage -o "raw.txt"
只是想知道是否还有其他的选择和优势。
卷曲是一个好的开始。更好的命令行是:
curl -A "Mozilla/5.0" -L -k -b /tmp/c -c /tmp/c -s http://url.tld
因为它使用cookies、用户代理、SSL证书和其他东西。
见man curl
man curl
保存/处理单个Web资源:上述方法适用于单个文件/Web资源。此外,还可以通过管道传输正则表达式,并根据预设模式剪切/跳过数据。保存所有标签 源URL。
递归地保存/处理整个目录或网站:使用Python或Perl脚本,该脚本可以迭代地下拉所有链接 以及属于页面或网站dns名称的资源。在Python I中 将使用http lib并递归地解析标记(确保有深度限制,或者对于大型网站,您可能最终会保存大量数据!)。一个简单而安全的方法是Beautiful Soup-这是一个Python库,它可以丢弃web数据、导航、搜索远程web资源的解析树。它还可以修改解析的本地内容等。
我将使用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" })
卷曲是一个好的开始。更好的命令行是:
因为它使用cookies、用户代理、SSL证书和其他东西。
见
man curl
保存/处理单个Web资源:上述方法适用于单个文件/Web资源。此外,还可以通过管道传输正则表达式,并根据预设模式剪切/跳过数据。保存所有标签 源URL。
递归地保存/处理整个目录或网站:使用Python或Perl脚本,该脚本可以迭代地下拉所有链接 以及属于页面或网站dns名称的资源。在Python I中 将使用http lib并递归地解析标记(确保有深度限制,或者对于大型网站,您可能最终会保存大量数据!)。一个简单而安全的方法是Beautiful Soup-这是一个Python库,它可以丢弃web数据、导航、搜索远程web资源的解析树。它还可以修改解析的本地内容等。
我将使用requests和BeautifulSoup的组合。
相关问题 更多 >
编程相关推荐