Bash脚本解析HTML文件

时间:2014-12-30 17:27:57

标签: linux bash shell unix

我使用shell脚本获取FedEx包的跟踪信息。当我执行脚本时,我传入跟踪号码(我在互联网上找到的虚拟号码),然后使用curl:

#$1=797843158299
curl -A Mozilla/5.0 -b cookies -s "https://www.fedex.com/fedextrack/WTRK/index.html?action=track&action=track&action=track&tracknumbers=$1=1490" > log.txt

curl命令的输出是HTML代码,我需要的信息在标记行之间:

<!--TRACKING CONTENT MAIN-->
<div id="container" class="tracking_main_container"></div>

在我需要解析交货信息的部分内 我对脚本很新,并尝试了一些&#34; | SED&#34;我在网上找到的建议,但无法正常工作。

1 个答案:

答案 0 :(得分:1)

curlwget无法做到这一点,因为渲染最终页面是使用创建的。可以在

中使用其他具有{{3}}功能的javascript工具

这是一个完整的工作示例,用于检查状态是否已交付

#!/usr/bin/python

useragent = "Mozilla/5.0 (X11; Linux x86_64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"

import spynner
from lxml import etree

browser = spynner.Browser(user_agent = useragent)
browser.create_webview(False)
browser.load("https://www.fedex.com/fedextrack/WTRK/index.html?action=track&action=track&action=track&tracknumbers=797843158299")
browser.wait_load()

reddit = etree.HTML(browser.html)

try:
    print reddit.xpath('//div[@class="statusChevron_key_status bogus"]')[0].text
except:
    print "Undelivered"

输出

Delivered