我将购买将运行lineageOS的新智能手机。因为选择合适的智能手机始终取决于手机的价格,所以我想生成一个包含lineageOS支持的所有设备的价格表。
制作起来非常清晰:这个问题是关于确切的分步说明的不是。它是关于找到正确的技术/工具来完成工作的。
哪些工具可用于列出所有lineageOS ROM的定价?
我知道用于生成此类列表的唯一工具是在“ bash”环境中的“ grep”和“ wget”。这不是完成工作的最有效方法,我希望其他人可以展示出更合适的工具。不过,这是我的收据以生成列表:
使用awk
和/或grep从主页源代码中筛选出所有设备的明细表
对每个设备字符串使用bash
for循环调用wget
进入idealo或amazon的restFull-API(这真的是该技术名称正确吗?)。这可能看起来像这样:
for device in $DEVICES; do wget https://www.idealo.de/preisvergleich/MainSearchProductCategory.html?q=$device > $device.html
使用grep
通过过滤第一个搜索项目来查找带有设备价格的行。这可能像这样丑陋:
grep -A999999 pageContent-wrapper device.html | grep -m1 -A2 ">price-prefix" | grep "€"
使用cut
从行中提取价格本身
通过使用类似下面的命令输出格式正确的列表:
echo $device $price
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/
)
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/