问题来源:
想看看《程序员》杂志的云计算类别的文章,发现不能用有道阅读订阅。由于该类别有68篇文章,每页显示10条记录,所以查看很不方便。于是想把所有文章的名称和url提取出来,放在一个文本中,这样可以方便查看。
解决思路:
最先想到的是用curl命令,可是发现该命令只能打开第一页的网页,其他页并不能打开,无法提取。原因可能是cookie造成的。最后使用lynx命令解决,lynx -source url可以将url的网页源代码打印到stdout,代码记录如下:
#本程序用于从程序员官网抓取云计算类别的所有文章,打印出url和文章名称。
#!/bin/bash
for i in {1..10}
do
lynx -source www.programmer.com.cn/category/%E4%BA%91%E8%AE%A1%E7%AE%97/page/$i | grep "<h2 class=\"posttitle\">" | sed 's/.*href="\([^"]*\)"[^>]*>\([^<]*\)<.*/\1 \2/g'
done