爬取《盗墓笔记》和爬取《宦海沉浮》原理一样,但是使用了两种不同的追踪链接的方式,《盗墓笔记》使用的是跟踪下一页链接,直至没有下一页为止,《宦海沉浮》则是将所有的url都放在start_urls中进行爬取

第一步:新建项目

KeysdeMacBook:Desktop keys$ scrapy startproject Novel
New Scrapy project 'Novel', using template directory '/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/scrapy/templates/project', created in:/Users/keys/Desktop/Novel
You can start your first spider with:cd Novelscrapy genspider example example.com

  

第二步:创建爬虫

KeysdeMacBook:Desktop keys$ cd Novel/
KeysdeMacBook:MyCrawl keys$ scrapy genspider BiJi www.mossiella.com/html/255.html

第三步:配置item.py

# -*- coding: utf-8 -*-import scrapyclass NovelItem(scrapy.Item):url = scrapy.Field()title = scrapy.Field()content = scrapy.Field()

  

第四步:编写爬虫

# -*- coding: utf-8 -*-
import scrapy
from Novel.items import NovelItemclass BijiSpider(scrapy.Spider):name = 'BiJi'allowed_domains = ['www.mossiella.com']start_urls = ['http://www.mossiella.com/html/255.html/']def parse(self, response):url = response.urltitle = response.xpath('//h1/text()').extract_first('')content = ','.join(response.xpath('//div[@class="zwcent"]/p/text()').extract())myitem = NovelItem()myitem['url'] = urlmyitem['title'] = titlemyitem['content'] = contentyield myitemnext_url = response.xpath('//a[@rel="next"]')if next_url:url = next_url.css('::attr(href)').extract_first('')yield scrapy.Request(url=url, callback=self.parse)

  

第五步:配置pipeline.py

import pymysqlclass MysqlPipeline(object):# 采用同步的机制写入mysqldef __init__(self):self.conn = pymysql.connect('127.0.0.1','root','rootkeys','Article',charset="utf8",use_unicode=True)self.cursor = self.conn.cursor()def process_item(self, item, spider):insert_sql = """insert into BiJi(url, title, content)VALUES (%s, %s, %s)"""# 使用VALUES实现传值self.cursor.execute(insert_sql,(item["url"],item["title"],item["content"]))self.conn.commit()

  

第六步:配置setting.py
BOT_NAME = 'Novel'
SPIDER_MODULES = ['Novel.spiders']
NEWSPIDER_MODULE = 'Novel.spiders'
USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'
ROBOTSTXT_OBEY = False

  

第七步:运行爬虫
import os
import sys
from scrapy.cmdline import executesys.path.append(os.path.dirname(os.path.abspath(__file__)))run_spider = 'BiJi'if __name__ == '__main__':print('Running Spider of ' + run_spider)execute(['scrapy', 'crawl', run_spider])

  

转载于:https://www.cnblogs.com/Keys819/p/10391685.html

Scrapy 应用之爬取《盗墓笔记》相关推荐

  1. Scrapy 爬取盗墓笔记小说

    Scrapy 爬取盗墓笔记小说 应用 Scrapy框架 爬取盗墓笔记小说数据,存入MongoDB 数据库. # settings 配置mongodb MONGODB_HOST = '127.0.0.1 ...

  2. python爬虫-爬取盗墓笔记

     本来今天要继续更新 scrapy爬取美女图片 系列文章,可是发现使用免费的代理ip都非常不稳定,有时候连接上,有时候连接不上,所以我想找到稳定的代理ip,下次再更新  scrapy爬取美女图片之 ...

  3. mysql scrapy 重复数据_大数据python(scrapy)爬虫爬取招聘网站数据并存入mysql后分析...

    基于Scrapy的爬虫爬取腾讯招聘网站岗位数据视频(见本头条号视频) 根据TIOBE语言排行榜更新的最新程序语言使用排行榜显示,python位居第三,同比增加2.39%,为什么会越来越火,越来越受欢迎 ...

  4. Python+scrapy+mysql实现爬取磁力链接

    Python+scrapy+mysql实现爬取磁力链接 作为老司机中的一员,所以试试爬取磁力链接,看看效果咋样. 直接上代码: class torrentSpider(scrapy.Spider):n ...

  5. Scrapy翻页爬取示例——列表页、详情页

    Scrapy翻页爬取示例--列表页.详情页 引言: 本人最近在帮助同事们爬取一批英-泰双语数据,顺带复习了一下scrapy爬虫相关的知识.下面以简单的小项目为例,一起来开始吧! 示例一:爬取列表页 本 ...

  6. 使用python3.7中的scrapy框架,爬取起点小说

    这几天在学习scrapy框架,感觉有所收获,便尝试使用scrapy框架来爬取一些数据,对自己阶段性学习进行一个小小的总结 本次爬取的目标数据是起点中文网中的免费作品部分,如下图: 本次一共爬取了100 ...

  7. 使用Scrapy框架,爬取b站番剧信息。

    使用Scrapy框架,爬取b站番剧信息. 感觉好久没写爬虫的,今天看了在b站浏览了一会儿,发现b站有很多东西可以爬取的,比如首页的排行榜,番剧感觉很容易找到数据来源的,所以就拿主页的番剧来练练手的. ...

  8. scrapy模拟浏览器爬取51job(动态渲染页面爬取)

    scrapy模拟浏览器爬取51job 51job链接 网络爬虫时,网页不止有静态页面还有动态页面,动态页面主要由JavaScript动态渲染,网络爬虫经常遇见爬取JavaScript动态渲染的页面. ...

  9. scrapy链接mysql_Python+scrapy+mysql实现爬取磁力链接

    Python+scrapy+mysql实现爬取磁力链接 作为老司机中的一员,所以试试爬取磁力链接,看看效果咋样. 直接上代码: class torrentSpider(scrapy.Spider): ...

  10. Python Scrapy爬虫框架爬取51job职位信息并保存至数据库

    Python Scrapy爬虫框架爬取51job职位信息并保存至数据库 -------------------------------- 版权声明:本文为CSDN博主「杠精运动员」的原创文章,遵循CC ...

最新文章

  1. 让AI训练AI,阿里和浙大的“AI训练师助手”是这样炼成的
  2. java org.jb2011报错_Java中getResourceAsStream()用法总结(转)
  3. Linux脚本自动安装软件,一个快速自动安装Apache及其相关软件的Shell脚本
  4. Set常用用法元素检索
  5. python绘制饼图程序_python使用Matplotlib绘制饼图
  6. 一些与HTML相关名词的简介
  7. javascript小技巧 JavaScript[对象.属性]集锦 [zz]
  8. Linux学习总结(26)——Shell常用命令总结
  9. 大厂面经----接近30场面试分享
  10. c#学习笔记---BackgroundWorker 详解
  11. 网络安全攻防实验室通关教程-注入关
  12. 即时通讯软件七大优势详解
  13. 李玉刚与石头的雨花石
  14. (JS)统计重复个数
  15. HUB, 交换机,路由器,区别
  16. 1008:Maya Calendar
  17. 虚拟串口VSPD安装指南
  18. oracle and not 的用法,[ORACLE]详解not in与not exists的区别与用法(not in的性能并不差!)...
  19. MySQL注入直接获取Shell的前提条件
  20. Android Duplicate class com.xxx found in modules

热门文章

  1. 如何翻译文字?安利你这几个文字翻译器
  2. 二值化函数cvThreshold()参数CV_THRESH_OTSU的疑惑
  3. 五个海盗分钻石(不只有趣)
  4. 计算机语言二进制什么意思,二进制代码是什么意思
  5. Java输出语句以及一些占位符在输出语句中的使用
  6. Android 7.1.2上默认wifi链接之后实际能上网却一直显示不能上网问题
  7. python中argparse_python argparse用法总结
  8. 5.4 SVR回归(时间序列分析)
  9. 网站渗透测试服务之discuz漏洞挖掘与利用
  10. 基于vue的MOBA类游戏攻略分享平台