scrapy的简单爬取不用新建项目。安装好scrapy后编写爬虫文件
import scrapy
class ZaobaoScrapy(scrapy.Spider):
name = "zaobao"
start_urls = ["http://www.zaobao.com/finance/china"]
def parse(self, response):
for href in response.css(".l_title .title a::attr(href)"):
full_url = response.urljoin(href.extract())
yield scrapy.Request(full_url,callback=self.parse_news)
def parse_news(self, response):
yield {
'title':response.css('#a_title h1::text').extract()[0],
'time':response.css(".time::text").extract(),
'content':response.css(".a_body").extract()[0],
'link': response.url,
}
上面爬虫的深度为1 爬取第一个页面,分析出网址后,爬取第二个页面
执行scrapy runspider zaobao_scrapy.py -o mm.json 就会生成json文件
scrapy一些优点
1,内置的数据抽取器
2,交互式控制台用于调试数据抽取方法
3,内置对结果输出的支持,可以保存为JSON, CSV, XML等
4,自动处理编码
5,支持自定义扩展
6,丰富的内置扩展,可用于处理:
1)cookies and session
2)HTTP features like compression, authentication, caching
3) user-agent spoofing
7,远程调试scrapy
8,更多的支持,比如可爬取xml、csv,可自动下载图片等等。
4)robots.txt
5) crawl depth restriction