scrapy 简单使用
来源:互联网 发布:软件接口安全设计 编辑:程序博客网 时间:2024/06/15 11:49
1.创建工程
scrapy startproject csdnProject
2.创建spider
根据基础模块创建spider
scrapy genspider -t basic csdnSpider csdn.net
3.编写spider
# -*- coding: utf-8 -*-import scrapyfrom scrapy.http import Requestfrom csdnProject.items import CsdnprojectItemclass CsdnspiderSpider(scrapy.Spider): # 定义变量 name = 'csdnSpider' allowed_domains = ['blog.csdn.net'] headers = { "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36" } # 开始爬取列表页 def start_requests(self): for page_num in range(1, 7, 1): url = 'http://blog.csdn.net/jeikerxiao/article/list/' + str(page_num) yield Request(url, headers=self.headers, callback=self.parse) # 解析列表页 # 爬取从列表页中获取的内容页 def parse(self, response): title_items = response.xpath("//div[@id='article_list']//span[@class='link_title']") for title_item in title_items: # item['title'] = title_item.xpath("./a/text()").extract()[0] extend_url = title_item.xpath("./a/@href").extract()[0] base_url = "http://blog.csdn.net" content_url = base_url + extend_url yield Request(content_url, headers=self.headers, callback=self.content_parse) # 解析内容页 def content_parse(self, response): item = CsdnprojectItem() # 解析标题信息 title_str = response.xpath("//div[@class='article_title']/h1/span[@class='link_title']/a/text()").extract()[0] # 删除标题字符串中的 空格 和 换行符 item['title'] = title_str.replace('\r\n', '').replace(' ', '') yield item
4.编写item
# -*- coding: utf-8 -*-import scrapyclass CsdnprojectItem(scrapy.Item): # 标题和连接 title = scrapy.Field() url = scrapy.Field()
阅读全文
0 0
- scrapy简单项目使用
- scrapy 简单使用
- scrapy安装和简单使用
- python scrapy爬虫简单安装使用
- selenium的使用和scrapy的简单使用
- scrapy使用
- Python 爬虫 正则抽取网页数据和Scrapy简单使用
- 使用scrapy-redis构建简单的分布式爬虫
- python的爬虫框架scrapy安装和简单使用
- Python之Scrapy爬虫框架安装及简单使用
- scrapy 简单教程
- scrapy的简单学习
- scrapy简单示例
- scrapy简单入门
- scrapy 简单爬取知乎
- scrapy-redis集成scrapy-splash使用教程
- Scrapy使用心得
- 使用scrapy爬取整站图片
- NDK开发错误 use of invalid jobject 0x7fb147b460
- CimatronE9.0下载 免费版
- Eclipse中NDK开发使用Application.mk指定需要编译的平台
- simpleadapter中按钮的响应事件
- centos7虚拟机重启后网络无法连接
- scrapy 简单使用
- 简单选择排序&冒泡排序&快速排序
- cookie的简单使用(一)
- C语言free()函数:释放动态分配的内存空间
- 关于C#的一些几个关键的概念:out,ref,const,readonly
- VC++2010开发权威指南--笔记一
- C 库函数 – memset()
- 《TP5.0学习笔记---视图和模板篇 》
- SpringCloud微服务架构搭建(一):注册与发现