1.爬取博客园中每页每条新闻的标题和url,在cnblog.py中写入操作内容(增加对每页的爬取)

# -*- coding: utf-8 -*-
import scrapy
import sys
import io
from..items import cnlogsItem
from scrapy.selector import Selector
from scrapy.http import Request
# from scrapy.dupefilters import RFPDupeFilter
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding="utf-8")class CnblogsSpider(scrapy.Spider):name = 'cnblogs'allowed_domains = ['cnblogs.com']start_urls = ['http://cnblogs.com/']def parse(self, response):print(response.url)line1 = Selector(response=response).xpath('//div[@id="post_list"]//div[@class="post_item_body"]')  #用selecter采集数据# href = Selector(response=response).xpath('//div[@id="post_list"]//div[@class="post_item_body"]/h3/a[@class="titlelnk"]/@href').extract()items = []for obj in line1:title = obj.xpath('./h3/a[@class="titlelnk"]/text()').extract()href = obj.xpath('./h3/a[@class="titlelnk"]/@href').extract()   #取href的值item_obj = cnlogsItem(title=title,href=href)  #把title、href封装成一个对象item_obj['title']=title[0]item_obj['href']=href[0]#将item对象传递给pipelineyield item_objline2 = Selector(response=response).xpath('//div[@class="pager"]/a/@href').extract()for url in line2:url = "http://cnblogs.com%s" %url   #网址的拼接#将新要访问的url添加到调度器yield Request(url=url,callback=self.parse)

2.去重操作,创建duplication.py文件,并写入以下内容:

class RepeatFilter(object):def __init__(self): #2.进行对象的初始化self.visited_set =set()@classmethoddef from_settings(cls, settings):  #执行次序  1.创建对象return cls()def request_seen(self, request):   # 去重操作  #4检查是否已经访问过if request.url in self.visited_set:return Trueself.visited_set.add(request.url)return Falsedef open(self):  # can return deferred   #3.开始爬取print('open')passdef close(self, reason):  # can return a deferred  #5.停止爬取print('close')passdef log(self, request, spider):  # log that a request has been filteredpass

3.在settings.py中添加配置参数

# DEPTH_LIMIT = 2   #设置爬取页数的深度
DUPEFILTER_CLASS = "pabokeyuan.duplication.RepeatFilter" #配置到pabokeyuan的目录下

4.在cmd中执行 E:\pycharm\pabokeyuan>scrapy crawl cnblogs --nolog,出现以下内容(在settings中设置DEPTH_LIMIT = 2),爬取的url

open
https://www.cnblogs.com/
https://www.cnblogs.com/sitehome/p/4
https://www.cnblogs.com/sitehome/p/7
https://www.cnblogs.com/sitehome/p/10
https://www.cnblogs.com/sitehome/p/9
https://www.cnblogs.com/sitehome/p/11
https://www.cnblogs.com/sitehome/p/8
https://www.cnblogs.com/sitehome/p/6
https://www.cnblogs.com/sitehome/p/5
https://www.cnblogs.com/
https://www.cnblogs.com/sitehome/p/2
https://www.cnblogs.com/sitehome/p/3
https://www.cnblogs.com/sitehome/p/13
https://www.cnblogs.com/sitehome/p/12
https://www.cnblogs.com/sitehome/p/16
https://www.cnblogs.com/sitehome/p/200
https://www.cnblogs.com/sitehome/p/15
https://www.cnblogs.com/sitehome/p/14
https://www.cnblogs.com/sitehome/p/196
https://www.cnblogs.com/sitehome/p/197
https://www.cnblogs.com/sitehome/p/195
https://www.cnblogs.com/sitehome/p/198
https://www.cnblogs.com/sitehome/p/199
close

5.在文件目录下可以看到news.json文件,打开该文件就会看到以下内容,爬取了上千条新闻标题和URL

创建FTP访问的YUM源
https://www.cnblogs.com/ylovew/p/11620870.htmlAndroid开发——Toolbar常用设置
https://www.cnblogs.com/kexing/p/11620853.html『王霸之路』从0.1到2.0一文看尽TensorFlow奋斗史
https://www.cnblogs.com/xiaosongshine/p/11620816.htmljavascript中字符串对象常用的方法和属性
https://www.cnblogs.com/jjgw/p/11608617.html非对称加密openssl协议在php7实践
https://www.cnblogs.com/wscsq789/p/11620733.html数据结构(3):队列的原理和实现
https://www.cnblogs.com/AIThink/p/11620724.htmlSUSE Ceph 的 'MAX AVAIL' 和 数据平衡 - Storage 6
https://www.cnblogs.com/alfiesuse/p/11620474.htmlFlume初见与实践
https://www.cnblogs.com/novwind/p/11620626.htmlEureka实战-2【构建Multi Zone Eureka Server】
https://www.cnblogs.com/idoljames/p/11620616.htmlC#刷遍Leetcode面试题系列连载(1) - 入门与工具简介
https://www.cnblogs.com/enjoy233/p/csharp_leetcode_series_1.html朱晔和你聊Spring系列S1E11:小测Spring Cloud Kubernetes @ 阿里云K8S
https://www.cnblogs.com/lovecindywang/p/11620544.ht

**注意:**本文是在上一篇文章的基础上编写,pipeline文件和item文件的配置,如下链接
https://blog.csdn.net/doudou_wsx/article/details/101977627

python爬虫:去掉重复的URL(爬取博客园中每页标题和url)相关推荐

  1. python爬虫学习(一)爬取boss直聘一页数据

    第一次爬数据遇到了很多坎儿,游走在各大大佬们的经验贴中,最终顺利完成任务,记录下来,以便我这猪脑忘记! (一)任务 爬取"上海市"+"web前端"+" ...

  2. python爬虫 - 起点女生榜单爬取 - 1

    python爬虫 - 起点女生榜单爬取 ​ 最近一直在追庆余年,顺带瞄了一眼小说,真真是精彩(虽然因为范闲多妻的设定接受不了就放弃了). ​ 说来说去,还是钟爱女频的修仙小说,所以就想爬一下起点女生网 ...

  3. 从入门到入土:Python爬虫学习|实例练手|爬取猫眼榜单|Xpath定位标签爬取|代码

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  4. 从入门到入土:Python爬虫学习|实例练手|爬取百度翻译|Selenium出击|绕过反爬机制|

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  5. 从入门到入土:Python爬虫学习|实例练手|爬取新浪新闻搜索指定内容|Xpath定位标签爬取|代码注释详解

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  6. 从入门到入土:Python爬虫学习|实例练手|爬取百度产品列表|Xpath定位标签爬取|代码注释详解

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  7. Python 爬虫实战,模拟登陆爬取数据

    Python 爬虫实战,模拟登陆爬取数据 从0记录爬取某网站上的资源连接: 模拟登陆 爬取数据 保存到本地 结果演示: 源网站展示: 爬到的本地文件展示: 环境准备: python环境安装 略 安装r ...

  8. Python爬虫利用18行代码爬取虎牙上百张小姐姐图片

    Python爬虫利用18行代码爬取虎牙上百张小姐姐图片 下面开始上代码 需要用到的库 import request #页面请求 import time #用于时间延迟 import re #正则表达式 ...

  9. Python爬虫--笔趣阁小说爬取

    Python爬虫–笔趣阁小说爬取 爬虫用到的插件 import requests from lxml import etree 小说目录页 以小说"我有百万技能点"为例,在笔趣阁搜 ...

最新文章

  1. Acwing--朴素dijkstra
  2. elasticsearch index、create和update的源码分析
  3. 开发shell脚本检查Nginx实战分享
  4. 【今日CV 视觉论文速览】 17 Dec 2018
  5. OpenGL基础45:光照矫正(下)之Gamma校正
  6. javascript循环事件只响应最后一次的问题处理
  7. 2013年9月份第2周51Aspx源码发布详情
  8. HM67主板开启ACHI
  9. npm install 停在下载某个包的地方不动
  10. webview 支付宝、微信支付 QQ登录
  11. NLP/常用数据集简介
  12. 浅谈BIM技术在“智慧工地”建设中的应用
  13. 基于Simulink的简单车辆动力学模型搭建
  14. Nginx的Https配置及代理api接口配置
  15. 第一讲 VMware 软件安装和虚拟机创建
  16. 工作与生活之平衡(4)微博病患者
  17. 我也瞎扯2句年薪百万!
  18. 4G全流量竞争加剧 运营业模式变革提速
  19. php x7f,这个正则中的x7f-xff是什么意思
  20. 探索神秘的编程语言的奥秘世界

热门文章

  1. Linux AH00558: apache2: Could not reliably determine the server‘s fully qualified domain name
  2. 超详细图文介绍在夜神模拟器上安装Frida框架
  3. 干货!如何通过极弱监督来完成海量文本的结构化
  4. Java 应用监控平台JavaMelody
  5. 关于斯托克斯公式的思考
  6. EasyExcel非模板导出,根据数据类型设置单元格数据格式
  7. 领歌敏捷协作——一直没有收到邮件的解决办法
  8. 2022年贵州省导游资格考试每日一练及答案
  9. 学生信息网格/表格案例实现(表单)
  10. matlab edit 换行,如何让MATLAB的edit编辑器自动换行