可抓取豆瓣读书、电影、音乐中任意标签下内容
在我刚刚入门Python爬虫的时候,无论怎样都很难找到一个适当的实例让我参考。
看过很多别人的例子,但都觉得不得要领,所以在折腾很久后写了这个简单的例子。
源码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
import re import urllib2
def douban_crawler(url_head, target): for page in range(0, 1000, 20): url_rear = "?start=%d&type=T" % page url_use = url_head + url_rear content = urllib2.urlopen(url_use).read() content = content.decode("UTF-8").encode("UTF-8") content = content.replace(r'title="去FM收听"', "") content = content.replace(r'title="去其他标签"', "") name = re.findall(r'title="(\S*?)"', content, re.S) num = re.findall(r'<span\s*class="rating_nums">([0-9.]*)<\/span>', content) doc = zip(name, num) if target == "book": dou = open("doc_book.txt", 'a') elif target == "music": dou = open("doc_music.txt", 'a') elif target == "movie": dou = open("doc_movie.txt", 'a')
for i in doc: dou.write(i[0] + " " + i[1] + "\n") dou.close()
if __name__ == '__main__': target = raw_input("豆瓣 book movie music,你想爬哪一个? ")
tag = raw_input("请输入你想要检索的标签: ")
url_head = "http://%s.douban.com/tag/%s" % (target, tag)
douban_crawler(url_head, target) print "抓取完毕"
|
抓取结果
月亮和六便士 9.0
百年孤独 9.2
解忧杂货店 8.7
追风筝的人 8.8
霍乱时期的爱情 9.0
平凡的世界(全三部) 9.0
围城 8.9
活着 9.1
一九八四 9.3
人生的枷锁 9.0
陆犯焉识 8.7
…
盗梦空间 9.2
寒战 7.4
嫌疑人X的献身 7.4
七宗罪 8.7
致命ID 8.5
云图 8.0
禁闭岛 8.5
蝴蝶效应 8.6
致命魔术 8.8
恐怖游轮 8.2
…
十二新作 8.2
Alright,Still 7.7
范特西 8.5
Apologize 8.9
逆光 7.3
Spin 8.5
阿岳正传 8.3
感官/世界 8.7
八度空间 7.5
PCD 8.4
…