- 爬虫的目的不是爬取出页面,而是页面中想要获取的信息,因此我们在上一节的基础上加入正则表达式获取信息,而且我们在items.py中定义了目标数据字段title = scrapy.Field() artist= scrapy.Field() 用来接收爬虫解析出的数据,然后return返回我们需要的信息,交给管道(pipelines)处理。
import scrapy
import re
from myspider.items import MyspiderItem
class MusicspiderSpider(scrapy.Spider):
name = 'musicspider'#爬虫识别名称
allowed_domains = ['htqyy.com']#爬虫能够爬取的网址范围
start_urls = ['http://www.htqyy.com/top/musicList/hot?pageIndex=0&pageSize=20']#爬取的起始url
def parse(self, response):
# filename='music.html'
data= response.body.decode()#获取响应内容
# open(filename,'wb').write(data)#写入本地,请求的动作被框架完成
items=[]# 存放音乐信息的列表
titles = re.findall(r'target="play" title="(.*?)"',data)#获取所有歌曲名
artists = re.findall(r'target="_blank">(.*?)</a>', data)#获取所有艺术家
for i in range(0,len(titles)):
item=MyspiderItem()
item["title"]=titles[i]
item["artist"] = artists[i]
items.append(item)
return items
在黑屏终端上输入:
scrapy crawl musicspider -o mu.json
获取json形式的数据。
- 创建aa.py和mu.json放在同一文件路径下。
aa.py
import json
with open("mu.json",'rb') as f:
data=json.load(f)
print(data)
- 返回结果:
[{'title': '清晨', 'artist': '班得瑞'}, {'title': '播放', 'artist': '班得瑞轻音乐精选'}, {'title': '月光下的凤尾竹', 'artist': '施光南'}, {'title': '播放', 'artist': '中国轻音乐精选集'}, {'title': '故乡的原风景', 'artist': '宗次郎'}, {'title': '播放', 'artist': '史上最优美的轻音乐'}, {'title': '心灵雨伞', 'artist': '轻音乐'}, {'title': '播放', 'artist': '史上最优美的轻音乐'}, {'title': '荡涤心灵的天籁之音', 'artist': '古筝'}, {'title': '播放', 'artist': '最经典的纯音乐'}, {'title': '夜的钢琴曲五', 'artist': '石进'}, {'title': '播放', 'artist': '史上最优美的轻音乐'}, {'title': '极度放松睡眠轻音乐', 'artist': '班得瑞'}, {'title': '播放', 'artist': '睡眠轻音乐'}, {'title': '时间都去哪了', 'artist': '赵海洋'}, {'title': '播放', 'artist': '唯美动听的钢琴曲'}, {'title': 'The Beginning', 'artist': 'Ryran·Tomson'}, {'title': '播放', 'artist': '触动心灵之弦的乐曲'}, {'title': '秋日私语', 'artist': '理查德'}, {'title': '播放', 'artist': '理查德经典钢琴曲'}, {'title': '你的微笑', 'artist': '班得瑞'}, {'title': '播放', 'artist': '班得瑞轻音乐精选'}, {'title': '斯卡布罗市集(口哨曲)', 'artist': '轻音乐'}, {'title': '播放', 'artist': '史上最优美的轻音乐'}, {'title': '亡灵序曲', 'artist': 'Dreamtale'}, {'title': '播放', 'artist': '好听的电子音乐'}, {'title': '唯美治愈系钢琴', 'artist': 'Steven Barnes'}, {'title': '播放', 'artist': '放松心情缓解压力的轻音乐'}, {'title': '牧羊曲', 'artist': '古筝'}, {'title': '播放', 'artist': '古筝名曲精选集'}, {'title': '夜曲(很伤感的纯音乐)', 'artist': '神秘园'}, {'title': '播放', 'artist': '神秘园精选集'}, {'title': '月光', 'artist': '班得瑞'}, {'title': '播放', 'artist': '班得瑞经典收藏'}, {'title': '寂静之声', 'artist': '班得瑞'}, {'title': '播放', 'artist': '班得瑞轻音乐精选'}, {'title': '雨的印记', 'artist': '李闰珉'}, {'title': '播放', 'artist': '减压舒缓精选'}, {'title': '聆听心灵深处的呼唤', 'artist': 'Karunesh'}, {'title': '播放', 'artist': '史上最优美的轻音乐'}]
网友评论