使用scrapy爬取新浪新闻
思路:通过观察,获取某节点作为当前节点,然后依次遍历大类链接 小类链接 子链接
要点:注意item和meta参数的使用。详情见代码newsina.py里面相关的注释
总结:个人因为item的位置,导致浪费了好多时间。
流程如下:
创建爬虫项目sina2
scrapy startproject sina2
设置items.py文件,存储要爬取的数据类型及字段名字
# -*- coding: utf-8 -*- import scrapy class Sina2Item(scrapy.Item): # 大类链接和url,如新闻 体育等 parentUrl = scrapy.Field() parentTitle = scrapy.Field() # 小类链接和url,如新闻下面的国内 社会等 subUrl = scrapy.Field() subTitle = scrapy.Field() # 小类存储路径 subpath = scrapy.Field() # 子链接 sonUrl = scrapy.Field() # 子链接里面的标题和内容 head = scrapy.Field() content = scrapy.Field()
创建爬虫文件newsina.py
# -*- coding: utf-8 -*- import os import scrapy from sina2.items import Sina2Item class NewsinaSpider(scrapy.Spider): name = 'newsina' allowed_domains = ['sina.com.cn'] start_urls = ['http://news.sina.com.cn/guide/'] def parse(self, response):