哪些工具可用于列出所有lineageOS ROM的定价? [关闭]

问题描述 投票:-1回答:1

我将购买将运行lineageOS的新智能手机。因为选择合适的智能手机始终取决于手机的价格,所以我想生成一个包含lineageOS支持的所有设备的价格表。

制作起来非常清晰:这个问题是关于确切的分步说明的不是。它是关于找到正确的技术/工具来完成工作的。

哪些工具可用于列出所有lineageOS ROM的定价?


我知道用于生成此类列表的唯一工具是在“ bash”环境中的“ grep”和“ wget”。这不是完成工作的最有效方法,我希望其他人可以展示出更合适的工具。不过,这是我的收据以生成列表:

  1. 使用wget下载devices homepagelineageOS statistics web service

  2. 使用awk和/或grep从主页源代码中筛选出所有设备的明细表

  3. 对每个设备字符串使用bash for循环调用wget进入idealoamazon的restFull-API(这真的是该技术名称正确吗?)。这可能看起来像这样:

    for device in $DEVICES; do wget https://www.idealo.de/preisvergleich/MainSearchProductCategory.html?q=$device > $device.html

  4. 使用grep通过过滤第一个搜索项目来查找带有设备价格的行。这可能像这样丑陋:

    grep -A999999 pageContent-wrapper device.html | grep -m1 -A2 ">price-prefix" | grep "€"

  5. 使用cut从行中提取价格本身

  6. 通过使用类似下面的命令输出格式正确的列表:

    echo $device $price

bash grep restful-url lineageos
1个回答
1
投票

我们使用正确的HTML解析器和

while read device; do
  printf '%s %s\n' "$device" $(
  saxon-lint --html --xpath '(//div[@class="offerList-item-priceMin"])[1]/text()' \
  "https://www.idealo.de/preisvergleich/MainSearchProductCategory.html?q=$device"
)
done < <(
  saxon-lint --html --xpath '//a[starts-with(@href, "/model")]/text()' \
  https://stats.lineageos.org/
)

检查saxon-lint

输出

m8 128,22 €
bacon 1,89 €
riva 224,99 €
cancro 8,35 €
klte 
j7eltexx 
t0lte 
wt88047 
i9300 35,58 €
mido 558,00 €
...

注意

通过a5y17lte测试https://www.idealo.de/preisvergleich/MainSearchProductCategory.html?q=a5y17lte(例如),没有结果。

该站点不可靠,另一个示例:bacon 1,89 €不是电话:D

另一个工作工具是xidel

xidel -e '//a[starts-with(@href, "/model")]/text()' https://stats.lineageos.org/
© www.soinside.com 2019 - 2024. All rights reserved.