中国农产品信息网站scrapy-redis分布式爬取数据

news/2024/5/15 20:51:14/文章来源:https://blog.csdn.net/weixin_30314813/article/details/99649165

---恢复内容开始---

 

基于scrapy_redis和mongodb的分布式爬虫

项目需求:

1:自动抓取每一个农产品的详细数据

2:对抓取的数据进行存储

 

第一步:

创建scrapy项目

创建爬虫文件

在items.py里面定义我们要爬取的数据

# -*- coding: utf-8 -*-# Define here the models for your scraped items
#
# See documentation in:
# https://doc.scrapy.org/en/latest/topics/items.htmlimport scrapyclass NongcpspiderItem(scrapy.Item):# define the fields for your item here like:# name = scrapy.Field()# 供求关系supply = scrapy.Field()# 标题title = scrapy.Field()# 发布时间create_time = scrapy.Field()# 发布单位unit = scrapy.Field()# 联系人contact = scrapy.Field()# 手机号码phone_number = scrapy.Field()# 地址address = scrapy.Field()# 详细地址detail_address = scrapy.Field()# 上市时间market_time = scrapy.Field()# 价格price = scrapy.Field()

 

 将settings.py改为false

写spider爬虫文件nongcp_spider.py,进行字段解析使用xpath,正则表达式

# -*- coding: utf-8 -*-
import scrapy
import re
from ..items import NongcpspiderItemclass NongcpSpiderSpider(scrapy.Spider):name = 'nongcp_spider'# allowed_domains = ['http://www.nongnet.com/']start_urls = ['http://www.nongnet.com/']def parse(self, response):"""解析详情页和下一页url:param response::return:"""detail_urls = response.xpath('//li[@class="lileft"]/a/@href').extract()for detail_url in detail_urls:yield scrapy.Request(url=self.start_urls[0]+detail_url, callback=self.detail_parse)next_url = response.xpath("//span[@id='ContentMain_lblPage']/a/@href").extract()if next_url:yield scrapy.Request(url=self.start_urls[0]+next_url[-2])def detail_parse(self, response):"""解析具体的数据:param response::return:"""items = NongcpspiderItem()title_result = response.xpath('//h1[@class="h1class"]/text()').extract_first()if title_result:items['supply'] = title_result.strip()[1:2]items['title'] = title_result.strip()[3:]creatte_time = re.findall(r"<font color='999999'>时间:(\d+/\d+/\d+ \d+:\d+) &nbsp", response.text)if creatte_time:items['create_time'] = creatte_time[0]unit = re.findall(r"发布单位</div><div class='xinxisxr'><a href='.*?.aspx'>(.*?)</a>", response.text, re.S)if unit:items['unit'] = unit[0]price = response.xpath('//div[@class="scdbj1"]/text()').extract()if price:items['price'] = ''.join(price)yield items

 

编写pipelines.py,往mongodb里面存储数据

# -*- coding: utf-8 -*-# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://doc.scrapy.org/en/latest/topics/item-pipeline.html
import pymongoclass NongcpspiderPipeline(object):def process_item(self, item, spider):return itemclass MongoPipeline(object):def __init__(self):client = pymongo.MongoClient(host='127.0.0.1', port=27017)self.db = client['nong']self.connection = self.db['Info']self.dbinfo = self.db.authenticate('xxxx', 'xxxx')def process_item(self, item, spider):self.connection.save(dict(item))return item

 

 完成以上步骤就可以进行数据的爬取了,接下来我们来测试一下爬取的效果

编写启动脚本start.py

 

 

#encoding: utf-8from scrapy import cmdline# cmdline.execute("scrapy crawl qsbk_spider".split())
cmdline.execute(["scrapy", 'crawl', 'nongcp_spider'])

 开启settings.py  pipelines字段

运行程序,爬取到的效果如下

 

接下来实现分布式去重爬取

先安装scrapy-redis

 

在settings.py里面配置scrapy-redis组件

 

在pipelines.py引入mongdb配置

修改nongcp_spider.py文件

 

 如果爬取过程中出现封ip的操作,我们可以设置middlewares.py,,在该文件设置代理

使用阿布云代理

 

 

 先启动start.py文件,在运行redis-cli

 

 

然后就可以抓取数据了到mongdb里面了

 

 

 

 

 

 

 

 

 

---恢复内容结束---

转载于:https://www.cnblogs.com/bkwxx/p/10663822.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_849398.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么让你的网站快如飞?

服务器、VPS、空间的介绍 服务器是真实存在的物理设备.无论是性能还是安全方面都是最强大的.VPS是虚拟服务器的意思.它的功能与服务器一模一样.但不同的是它是虚拟的.在同等配置的情况下.性能不如服务器.云主机则是VPS的升级版.相对VPS来讲更稳定.更安全一些.空间和虚拟主机是同…

keepalived + lvs 网站高可用集群

一 &#xff0c;四台服务器 master 端 &#xff1a; 192.168.206.3 backup 端&#xff1a; 192.168.206.4 REserver1 端 &#xff1a; 192.168.206.5 REserver2 端&#xff1a; 192.168.206.6 二、 开始部署 1> 配置 REserver1 端 REserver2 端 &#xff08; 在回环地址配…

部署网站

1&#xff0c;下载tomcat 2 网站内容copy到tomcat classes 文件为编译后代码3将webapp copy 到 C:\apache-tomcat-7.0.85\webapps 修改 webapp 为easy即可 访问地址为 http://10.0.0.96:8080/easy/index.jsp 3 tomcat 修改如果出现有参数的接口请求不到The valid characters a…

大型网站系统架构演化之路

前言 一个成熟的大型网站&#xff08;如淘宝、天猫、腾讯等&#xff09;的系统架构并不是一开始设计时就具备完整的高性能、高可用、高伸缩等特性的&#xff0c;它是随着用户量的增加&#xff0c;业务功能的扩展逐渐演变完善的&#xff0c;在这个过程中&#xff0c;开发模式、技…

谈谈个人网站的建立(一)——建站历史和技术架构

首先&#xff0c;帮忙点击一下我的网站http://www.wenzhihuai.com/。谢谢啊&#xff0c;如果可以&#xff0c;GitHub上麻烦给个star&#xff0c;以后面试能讲讲这个项目&#xff0c;GitHub地址https://github.com/Zephery/newblog 大学的时候萌生的一个想法&#xff0c;就是建立…

MacOS网页自动化教程(下)- PySeTest网站自动登录到下单测试手脚架#Python3 + Selenium3+ HTMLTestRunner#工欲善其事

PySeTest网站自动登录到下单测试手脚架#Python3 Selenium3 HTMLTestRunner系统说明如何使用功能说明实现步骤测试路径测试脚本代码实现常用方法封装Selenium基础用法Selenium 中文文档Selenium3 定位方法Selenium的等待自动生成Html测试报告HTMLTestRunner 兼容Python3如何使用…

大型网站架构改进历程:存储的瓶颈(四)

摘要&#xff1a;什么是大型网站&#xff0c;从网站的技术角度考虑这个问题人们很容易犯一个毛病就是认为网站的访问量是衡量的指标&#xff0c;懂点行的人也许会认为是网站在单位时间里的并发量的大小来作为指标&#xff0c;如果按这些标准那么像hao123网站就是了。 本文转自博…

律师所网站建设及律师事务所网站模板整理

律师网站建设的内部系统可以分为很多&#xff0c;根据栏目页的设定可以有不同的系统&#xff0c;而且随着时代的发展以及互联网技术的不断更新&#xff0c;各方面系统管理也在升级&#xff0c;网站建设者或是管理者需要不断的对网站进行优化&#xff0c;使得符合时代发展的要求…

做网站用企业网站模板好不好

现在很过公司企业做网站都一般有两种途径&#xff0c;一种找人量身定制&#xff0c;一种选择现成的企业网站模板&#xff0c;目前来说&#xff0c;这两种网站建设方式价格差异也不大&#xff0c;那么到底是定制好&#xff1f;还是企业网站模板好呢&#xff1f; 其实这个问题没有…

响应式网站建设的优缺点

首先要明白响应式网站概念&#xff0c;响应式网站是国外最先流行的一种网站布局理念&#xff0c;其理念是&#xff1a;集中创建页面的图片排版大小&#xff0c;可以智能地根据用户行为以及使用的设备环境进行相对应的布局&#xff0c;说简单点就是可以在pc和手机及各种浏览设备…

网站建设需要注意的几个重要因素

在互联网发达的时代&#xff0c;网站已经是生活当中必不可少的一个事物了&#xff0c;许许多多的企业都熟悉了网站建设的流程&#xff0c;企业可以通过网站可以自由的发布信息、更新产品、还能够为客户提供一些在线的服务等。成功的网站建设能为企业带来一定的业务和收益&#…

网站建设方案

一、网站目标 网络凭借其卓越的互动性与便捷的交流手段正成为最有发展潜力与前途的新兴媒体&#xff0c;成为众企业倍为关注的宣传热点。许多行业的知名企业已经通过网站建设来为自己的企业带来显著的宣传效果。企业网站为对外宣传、服务和交流的载体&#xff0c;来配合企业的迅…

新手如何学习网站建设,教你如何制作网站

新手开发网站具备的条件&#xff1a;对电脑熟练操作&#xff0c;使用电脑最好在一年以上&#xff0c;会打字&#xff0c;懂基本电脑知识&#xff0c;这个对现在的人来说都不成问题的。第一阶段&#xff1a;开始时最好是学些网页编辑软件和基础网页脚本语法&#xff0c;如&#…

网站开发流程

创建一个企业形象网站&#xff0c;要做好商业网站开发的前期准备、中期制作和后期的测试发布工作。前期准备包括了解网站的业务背景、明确网站的设计风格、确定网站内容等&#xff1b;中期制作主要包括创建站点、制作首页、制作模板和制作样式&#xff1b;后期的测试发布工作包…

自己建网站的步骤及方法

在当前&#xff0c;生活上很多事情已经和互联网息息相关了&#xff0c;每个我们都会网上浏览各种网站&#xff0c;新闻网站看新闻&#xff0c;购物网站在线购买&#xff0c;视频网站可以看视频&#xff0c;各种类型的网站基本都会有&#xff0c;企业建网站为了宣传和提供服务&a…

新站长建设网站需要学习知识

企业寻求建站公司为其做网站需要明确以下几点概要&#xff1a; 1、确定建设网站&#xff0c;首先要准备网站建设方案书制作,网站建设素材,网站页面设计与制作标准,网站功能性程序开发与页面融合,数据库设计与数据输入,服务器服务器存放,域名注册与解析。 2、对于每个流程,需要概…

安装PageAdmin Cms建站系统时候“System.ServiceModel.Activation.HttpModule”错误的解决办法

今天把PageAdmin Cms建站系统改的一个网站转移到云服务器时候&#xff0c;网站报提示了下面的错误&#xff0c;找了半天在官方网站找到解决办法&#xff0c;下面发出来给大家共享 错误&#xff1a; 未能从程序集“System.ServiceModel, Version3.0.0.0, Cultureneutral, Publ…

自助建站之PageAdmin、凡科建站、Wordpress如何选择?

国内互联网发展这么多年&#xff0c;网站建设行业的技术发展已经很成熟&#xff0c;以前做网站只能找专业网站建设公司&#xff0c;到现在的自助建站&#xff0c;技术壁垒几乎不存在&#xff0c;自助建站是现在&#xff0c;也是未来的发展趋势。 自助建站分为在线建站平台和独…

好用的免费CMS网站模板源码下载推荐

现在越来越多企业采用网站模板建站&#xff0c;加快了速度&#xff0c;也节约了建站成本&#xff0c;但是百度搜索很多网站模板90%都是骗流量的&#xff0c;根本就用不了&#xff0c;要不一些乱七八糟的&#xff0c;要不国外复制的&#xff0c;要么没有后台&#xff0c;即使有后…

织梦DEDECMS、PageAdmin Cms、wordpress哪个建站系统做网站好

现在的CMS系统非常多&#xff0c;CMS作为基础的网站内容管理系统&#xff0c;都已经比较成熟了&#xff0c;国内常用的CMS系统有&#xff1a;PageAdmin Cms、织梦DEDECMS、Wordpress等。对于老手来说&#xff0c;适合自己的就是最好的&#xff0c;那么&#xff0c;对于新手呢&a…