python爬虫:去掉重复的URL(爬取博客园中每页标题和url)
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)相关推荐
- python爬虫学习(一)爬取boss直聘一页数据
第一次爬数据遇到了很多坎儿,游走在各大大佬们的经验贴中,最终顺利完成任务,记录下来,以便我这猪脑忘记! (一)任务 爬取"上海市"+"web前端"+" ...
- python爬虫 - 起点女生榜单爬取 - 1
python爬虫 - 起点女生榜单爬取 最近一直在追庆余年,顺带瞄了一眼小说,真真是精彩(虽然因为范闲多妻的设定接受不了就放弃了). 说来说去,还是钟爱女频的修仙小说,所以就想爬一下起点女生网 ...
- 从入门到入土:Python爬虫学习|实例练手|爬取猫眼榜单|Xpath定位标签爬取|代码
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- 从入门到入土:Python爬虫学习|实例练手|爬取百度翻译|Selenium出击|绕过反爬机制|
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- 从入门到入土:Python爬虫学习|实例练手|爬取新浪新闻搜索指定内容|Xpath定位标签爬取|代码注释详解
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- 从入门到入土:Python爬虫学习|实例练手|爬取百度产品列表|Xpath定位标签爬取|代码注释详解
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- Python 爬虫实战,模拟登陆爬取数据
Python 爬虫实战,模拟登陆爬取数据 从0记录爬取某网站上的资源连接: 模拟登陆 爬取数据 保存到本地 结果演示: 源网站展示: 爬到的本地文件展示: 环境准备: python环境安装 略 安装r ...
- Python爬虫利用18行代码爬取虎牙上百张小姐姐图片
Python爬虫利用18行代码爬取虎牙上百张小姐姐图片 下面开始上代码 需要用到的库 import request #页面请求 import time #用于时间延迟 import re #正则表达式 ...
- Python爬虫--笔趣阁小说爬取
Python爬虫–笔趣阁小说爬取 爬虫用到的插件 import requests from lxml import etree 小说目录页 以小说"我有百万技能点"为例,在笔趣阁搜 ...
最新文章
- Acwing--朴素dijkstra
- elasticsearch index、create和update的源码分析
- 开发shell脚本检查Nginx实战分享
- 【今日CV 视觉论文速览】 17 Dec 2018
- OpenGL基础45:光照矫正(下)之Gamma校正
- javascript循环事件只响应最后一次的问题处理
- 2013年9月份第2周51Aspx源码发布详情
- HM67主板开启ACHI
- npm install 停在下载某个包的地方不动
- webview 支付宝、微信支付 QQ登录
- NLP/常用数据集简介
- 浅谈BIM技术在“智慧工地”建设中的应用
- 基于Simulink的简单车辆动力学模型搭建
- Nginx的Https配置及代理api接口配置
- 第一讲 VMware 软件安装和虚拟机创建
- 工作与生活之平衡(4)微博病患者
- 我也瞎扯2句年薪百万!
- 4G全流量竞争加剧 运营业模式变革提速
- php x7f,这个正则中的x7f-xff是什么意思
- 探索神秘的编程语言的奥秘世界
热门文章
- Linux AH00558: apache2: Could not reliably determine the server‘s fully qualified domain name
- 超详细图文介绍在夜神模拟器上安装Frida框架
- 干货!如何通过极弱监督来完成海量文本的结构化
- Java 应用监控平台JavaMelody
- 关于斯托克斯公式的思考
- EasyExcel非模板导出,根据数据类型设置单元格数据格式
- 领歌敏捷协作——一直没有收到邮件的解决办法
- 2022年贵州省导游资格考试每日一练及答案
- 学生信息网格/表格案例实现(表单)
- matlab edit 换行,如何让MATLAB的edit编辑器自动换行