爬虫 微信公众登录和爬取,内容去重

您所在的位置:网站首页 模拟微信登陆公众号 爬虫 微信公众登录和爬取,内容去重

爬虫 微信公众登录和爬取,内容去重

2024-07-14 16:38:54| 来源: 网络整理| 查看: 265

创建项目后 1、实现登录 在这里插入图片描述 2、设置请求头和配置,这里使用自定义的配置,可以把经常用的东西放里面 在这里插入图片描述 自定义配置代码

import random,redis from hashlib import md5 Interval = random.randint(0, 1) + random.random() wechat_settings = { 'LOG_FILE': 'wechat_spider.log', ## 日志文件 'LOG_ENABLE' : True, 'LOG_ENCODING':'utf-8', 'LOG_LEVEL' : 'DEBUG', ## DEBUG,WARNING #下载器从同一网站下载连续页面之前应等待的时间(以秒为单位)。这可以用来限制爬行速度,以避免过于严重地击中服务器。 'DOWNLOAD_DELAY':Interval, ## 下载延时 'DOWNLOAD_TIMEOUT':30, ## 超时限制 "DEFAULT_REQUEST_HEADERS": ## 请求头 { 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en', 'user_agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv2.0.1) Gecko/20100101 Firefox/4.0.1', }, 'MONGO_URI':'localhost', 'MONGO_DATABASE' : 'wechat', 'ITEM_PIPELINES':{ 'wechat.pipelines.MongoPipeline':301, } } DUPEFILTER_REDIS_KEY = 'wechat:dupefilter' import hashlib def get_md5(value): a_md5 = hashlib.md5(value.encode('utf-8').hexdigest()) return a_md5 #返回为true,表示重复 def seen_value(value): #链接数据库 server = redis.Redis() #加入redis的集合,返回true表示已经有了加不进去 if server.sadd(DUPEFILTER_REDIS_KEY,value)==0: return True return False

3、获取信息: 在这里插入图片描述 判断返回的html内容是否存在,先md5加密唯一性,再判断之前的set中有没有,如果插入set成功就是有了 在这里插入图片描述 4、pipeline存入数据库:代码

import pymongo class MongoPipeline(object): def __init__(self, mongo_uri, mongo_db): self.mongo_uri = mongo_uri self.mongo_db = mongo_db @classmethod def from_crawler(cls, crawler): return cls( mongo_uri=crawler.settings.get('MONGO_URI'), mongo_db=crawler.settings.get('MONGO_DATABASE','items') ) def open_spider(self, spider): self.client = pymongo.MongoClient(self.mongo_uri) self.db = self.client[self.mongo_db] def close_spider(self, spider): self.client.close() def process_item(self, item, spider): print(item) #再次判断有没有重复的url,如果有就更新,没有就插入 self.db['lentu'].update({'detail_url':item['detail_url']},{'$set':dict(item)},True) return item

或者

import pymongo class MycsdnPipeline(object): def __init__(self): self.client = pymongo.MongoClient('localhost') self.db = self.client['myscnd'] def process_item(self, item, spider): self.db['scnd'].insert(item) return item


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭