Scrapy-01-追踪爬取
- 目的:利用scrapy完成盗墓笔记小说的抓取
- 创建项目:
- scrapy startproject books
- cd books
- scrapy genspider dmbj
 
- 编写parse方法
- # -*- coding: utf-8 -*- 
 import scrapy class DmbjSpider(scrapy.Spider):
 name = 'dmbj'
 allowed_domains = ['www.cread.com/chapter/811400395/69162457.html']
 start_urls = ['http://www.cread.com/chapter/811400395/69162457.html/'] def parse(self, response):
 title = response.xpath('//h1/text()').extract_first()
 content = response.xpath('//div[@class="chapter_con"]/text()').extract_first()
 with open('{}.txt'.format(title), 'w') as f:
 f.write(content)- 观察网页源码,利用xpath对信息进行提取,然后写入一个txt文本文件 
- 追踪爬取,在完成对单页的爬取之后,接下来对整篇小说进行爬取
- 首先分析网页:
- 单页爬取已经完成,想要爬取下一章就得找到下一章的url
- 网页的最后又一个"下一章"的按钮,我们拿到按钮里面的href属性的值就行了
- 注意href的值为相对url,我们需要将完整的url拼接起来
- 利用response.urljoin(你的相对url),即可完成完整的url拼接
 
- 提取到下一页的绝对url之后利用scrapy.Request方法来对下一页进行爬取
- 这里的allowed_domains 要改成"www.cread.com"
- # -*- coding: utf-8 -*- 
 import scrapy class DmbjSpider(scrapy.Spider):
 name = 'dmbj'
 allowed_domains = ['www.cread.com']
 start_urls = ['http://www.cread.com/chapter/811400395/69162457.html/'] def parse(self, response):
 title = response.xpath('//h1/text()').extract_first()
 content = response.xpath('//div[@class="chapter_con"]/text()').extract_first()
 with open('{}.txt'.format(title), 'w') as f:
 f.write(content)
 next_url = response.xpath('//a[@id="go_next"]/@href').extract_first()
 url = response.urljoin(next_url)
 return scrapy.Request(url)
- 最后scrapy crawl dmbj 运行爬虫开始抓取
 
Scrapy-01-追踪爬取的更多相关文章
- 爬虫系列5:scrapy动态页面爬取的另一种思路
		前面有篇文章给出了爬取动态页面的一种思路,即应用Selenium+Firefox(参考<scrapy动态页面爬取>).但是selenium需要运行本地浏览器,比较耗时,不太适合大规模网页抓 ... 
- 安居客scrapy房产信息爬取到数据可视化(下)-可视化代码
		接上篇:安居客scrapy房产信息爬取到数据可视化(下)-可视化代码,可视化的实现~ 先看看保存的数据吧~ 本人之前都是习惯把爬到的数据保存到本地json文件, 这次保存到数据库后发现使用mongod ... 
- scrapy 也能爬取妹子图?
		目录 前言 Media Pipeline 启用Media Pipeline 使用 ImgPipeline 抓取妹子图 瞎比比前言 我们在抓取数据的过程中,除了要抓取文本数据之外,当然也会有抓取图片的需 ... 
- Scrapy 应用之爬取《盗墓笔记》
		爬取<盗墓笔记>和爬取<宦海沉浮>原理一样,但是使用了两种不同的追踪链接的方式,<盗墓笔记>使用的是跟踪下一页链接,直至没有下一页为止,<宦海沉浮>则是 ... 
- Scrapy定时执行爬取任务与定时关闭任务
		当我们利用Python scrapy框架写完脚本后,脚本已经可以稳定的进行数据的爬取,但是每次需要手动的执行,太麻烦,如果能自动运行,在自动关闭那就好了,经过小编研究,完全是可以实现的,今天小编介绍2 ... 
- Scrapy爬虫笔记 - 爬取知乎
		cookie是一种本地存储机制,cookie是存储在本地的 session其实就是将用户信息用户名.密码等)加密成一串字符串,返回给浏览器,以后浏览器每次请求都带着这个sessionId 状态码一般是 ... 
- scrapy框架 + selenium 爬取豆瓣电影top250......
		废话不说,直接上代码..... 目录结构 items.py import scrapy class DoubanCrawlerItem(scrapy.Item): # 电影名称 movieName = ... 
- Scrapy实战篇(八)之Scrapy对接selenium爬取京东商城商品数据
		本篇目标:我们以爬取京东商城商品数据为例,展示Scrapy框架对接selenium爬取京东商城商品数据. 背景: 京东商城页面为js动态加载页面,直接使用request请求,无法得到我们想要的商品数据 ... 
- 【scrapy】关于爬取的内容是Unicode编码
		自己练习爬取拉钩网信息的时候爬取的信息如下: {'jobClass': [u'\u9500\u552e\u52a9\u7406'], 'jobUrl': u'https://www.lagou.com ... 
- Scrapy框架——CrawlSpider爬取某招聘信息网站
		CrawlSpider Scrapy框架中分两类爬虫,Spider类和CrawlSpider类. 它是Spider的派生类,Spider类的设计原则是只爬取start_url列表中的网页, 而Craw ... 
随机推荐
- JAVAEE学习day04方法的定义和重载
			1.方法定义的格式 方法就是完成特定功能的代码块 修饰符 返回值类型 方法名(参数类型 参数名1, 参数类型 参数名2...){ 方法体; return 返回值; } 修饰符: 初学者只需记住publ ... 
- failed to open directory
			解决方法: 解决方案的路径不要包含中文! 
- windows 下载~安装nginx
			nginx 中文文档 http://www.nginx.cn/doc/ 到nginx官网下载安装包http://nginx.org/en/download.html 解压安装包 进入windows的c ... 
- (转)GNU风格ARM汇编语法指南(非常详细)5
			原文地址:http://zqwt.012.blog.163.com/blog/static/120446842010111482417545/ 6.GNU汇编程序中的常数 <1> 十 ... 
- 如何在vue中修改动态标签中的样式和修改组件库样式
			vue中修改动态标签中的样式和修改组件库样式 因为vue中的标签在渲染的时候,都会给标签加上id 所以你想在<style lang="scss" scoped>直接修改 ... 
- [Docker7]Harbor
			harbor download harbor offline tar package wget https://github.com/vmware/harbor/releases/download/v ... 
- .NET Core使用NPOI导出复杂,美观的Excel详解
			前言: 这段时间一直专注于数据报表的开发,当然涉及到相关报表的开发数据导出肯定是一个不可避免的问题啦.客户要求要导出优雅,美观的Excel文档格式的来展示数据,当时的第一想法就是使用NPOI开源库来做 ... 
- fastText 训练和使用
			2019-09-09 16:33:11 问题描述:fastText是如何进行文本分类的. 问题求解: fastText是一种Facebook AI Research在16年开源的一个文本分类器. 其特 ... 
- 【Unity游戏开发】跟着马三一起魔改LitJson
			一.引子 在游戏开发中,我们少不了和数据打交道,数据的存储格式可谓是百花齐放,xml.json.csv.bin等等应有尽有.在这其中Json以其小巧轻便.可读性强.兼容性好等优点受到广大程序员的喜爱. ... 
- [Flink] Flink的waterMark的通俗理解
			导读 Flink 为实时计算提供了三种时间,即事件时间(event time).摄入时间(ingestion time)和处理时间(processing time). 遇到的问题: 假设在一个5秒的T ... 
