URLテキストファイルリストのループでCurlが機能しません。

URLテキストファイルリストのループでCurlが機能しません。

約50個のURLを含むテキストファイルがあり、テキストファイルの各URLをカールして、grepを使用してGREP一致から数行を出力しようとしています。

各行をエコーすると、URLが正しく表示されるようになぜ機能しないのか理解できません。 URLとGrepを使用してCURLを手動で実行すると機能します。ただし、ループ内に入ると何も出力されません。

while IFS= read -r line
do
echo "$line"
curl -s "$line" | grep "Telephone"
done <  links.txt

入力例:

https://qguild.co.uk/our-butchers/simpsons-butchers-south-hykeham/
https://qguild.co.uk/our-butchers/simpsons-butchers-spalding/
https://qguild.co.uk/our-butchers/simpsons-butchers-lincoln/
https://qguild.co.uk/our-butchers/simpsons-butchers-2/

出力例:

curl -s "https://qguild.co.uk/our-butchers/simpsons-butchers-south-hykeham/" | grep "Telephone"

<p>Simpsons Butchers,<br />Pennell`s Garden Centre,<br />Newark Road, South Hykeham, Lincoln, LN6 9NT. Telephone: 01522 695419<br />Monday - Saturday : 8am - 5.30pm Sunday : 10am - 4pm</p>

<p>Pennells Garden Centre, Newark Road, SOUTH HYKEHAM, LINCOLN LN6 9NT</p>                        
<p>Telephone: <a href="tel:01522-695419">01522 695419</a></p>                        <p>Email: <a href="mailto:[email protected]">[email protected]</a></p>                        
<p>Website: <a href="http://gsimpsonbutchers.co.uk/" target="_blank" rel="noopener noreferrer">http://gsimpsonbutchers.co.uk/</a></p>

ベストアンサー1

使用そして:

ほとんどのコードを維持するには:

dos2unix links.txt

それから

while IFS= read -r url; do
     xidel -e '//p[contains(., "Telephone")]/a/text()' -s "$url"
done < links.txt

短く:

xargs < links.txt xidel -e '//p[contains(., "Telephone")]/a/text()' -s

出力

01522 695419
01775 723157
01522 525374
01529 460403

おすすめ記事