举例: 访问http://lab.scrapyd.cn/
爬虫parse通过css解析字段;
def parse(self, response):
# 提取首页所有名言(两种写法)
#mingyan = response.css('div.quote)
mingyan = response.css('div.quote.post')
for v in mingyan: # 循环获取每一条名言里面的:名言内容、作者、标签
# 提取名言(通过css,两种查找法)
#text = v.css('.text::text').extract_first()
text = v.css('span.text::text').extract_first()
# 提取作者(三种写法)
#autor = v.css('.author::text').extract_first()
#autor = v.css('span small::text').extract_first()
autor = v.css('span:nth-child(2) > small::text').extract_first()
#提取标签(二种查找法)
# tags = v.css('.tags .tag::text').extract()
tags = v.css('div a.tag::text').extract()
tags = ','.join(tags)
大家可以打印print(type(v.css(‘div a.tag::text’))):
发现类型是:<class ‘scrapy.selector.unified.SelectorList’>
上面的css 几种写法,没必要都记住,可以借助插件工具,很方便查找,在谷歌浏览器中,安装一下css selector插件,如截图:在左边框中选择要查找的项,然后右边框中选择css path. 可以参考上面提取作者项对比看
爬虫parse通过xpath解析字段;
def parse(self, response):
mingyan = response.xpath('//div[@class="quote post"]')# 提取首页所有名言,保存至变量mingyan
for v in mingyan: # 循环获取每一条名言里面的:名言内容、作者、标签
text = v.xpath('.//span[@class="text"]/text()').extract_first()# 提取名言
autor = v.xpath('.//span/small[@class="author"]/text()').extract_first() # 提取作者
tags = v.xpath('.//div[@class="tags"]/a/text()').extract() # 提取标签
tags = ','.join(tags) # 数组转换为字符串
print('tags:%s'%tags)