Scrapy框架爬虫—以京东众筹为例

Scrapy框架爬虫——以京东众筹为例

        • 第一步, 打开命令提示符,创建一个Scrapy框架;
        • 第二步,定位到创建的文件夹;
        • 第三步,在spider文件夹中创建一个.py文件(注:不要关闭命令提示符);
        • 第四步,打开items.py这个文件,将提取信息的名称、属性写入其中;
        • 第五步,打开第三步创建的.py文件;
        • 第六步,根据网页源代码查找提取信息,编写代码(这里需要修改start_urls为访问网页的网址。删除allowed_domains,导入items.py中的Jd1Item类);
        • 第七步,打开pipelines.py,将所提取的内容写入json文件;
        • 第八步, 打开settings.py,修改访问的USER_AGENT,注释掉ROBOTSTXT_OBEY,解除ITEM_PIPELINES注释;
        • 最后,打开命令提示符,运行创建的.py文件(这里是jdzch1.py);

第一步, 打开命令提示符,创建一个Scrapy框架;

在这里插入图片描述

第二步,定位到创建的文件夹;

在这里插入图片描述

第三步,在spider文件夹中创建一个.py文件(注:不要关闭命令提示符);

在这里插入图片描述

第四步,打开items.py这个文件,将提取信息的名称、属性写入其中;

import scrapyclass Jd1Item(scrapy.Item):# define the fields for your item here like:# name = scrapy.Field()# 定义所找的变量的名字、属性title = scrapy.Field()perc = scrapy.Field()outc1 = scrapy.Field()money = scrapy.Field()outc2 = scrapy.Field()time = scrapy.Field()outc3 = scrapy.Field()

第五步,打开第三步创建的.py文件;

在这里插入图片描述

第六步,根据网页源代码查找提取信息,编写代码(这里需要修改start_urls为访问网页的网址。删除allowed_domains,导入items.py中的Jd1Item类);

提取信息的其他方式见(https://blog.csdn.net/weixin_43196531/article/details/85159471)

import scrapy
# 导入items类, 使items类生效
from jd1.items import Jd1Itemclass Jdzch1Spider(scrapy.Spider):name = 'jdzch1'start_urls = ['http://z.jd.com/bigger/search.html']def parse(self, response):result = response.xpath('//li[@class="info type_now"]')# 循环每个商品,提取所需信息for i in result:# 定义 item 字典item = Jd1Item()# 筛选信息item['title'] = i.xpath('.//h4[@class="link-tit"]/text()').extract_first()item['perc'] = i.xpath('.//li[@class="fore1"]/p[@class="p-percent"]/text()').extract_first()item['outc1'] = i.xpath('.//li[@class="fore1"]/p[@class="p-extra"]/text()').extract_first()item['money'] = i.xpath('.//li[@class="fore2"]/p[@class="p-percent"]/text()').extract_first()item['outc2'] = i.xpath('.//li[@class="fore2"]/p[@class="p-extra"]/text()').extract_first()item['time'] = i.xpath('.//li[@class="fore3"]/p[@class="p-percent"]/text()').extract_first()item['outc3'] = i.xpath('.//li[@class="fore3"]/p[@class="p-extra"]/text()').extract_first()yield item

第七步,打开pipelines.py,将所提取的内容写入json文件;

import jsonclass Jd1Pipeline(object):# 定义初始化函数def __init__(self):# 定义函数名self.filename = open('jdzch.json', 'w',encoding = 'utf-8')# 处理函数def process_item(self, item, spider):# 将json数据转化为字符串text = json.dumps(dict(item), ensure_ascii = False) + '\n'# 对文件进行写入self.filename.write(text)# 定义文件关闭函数def close_spider(self,spider):self.filename.close()

第八步, 打开settings.py,修改访问的USER_AGENT,注释掉ROBOTSTXT_OBEY,解除ITEM_PIPELINES注释;

USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.6788.400 QQBrowser/10.3.2714.400'

在这里插入图片描述
在这里插入图片描述

最后,打开命令提示符,运行创建的.py文件(这里是jdzch1.py);

在这里插入图片描述文件内容如下:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

电梯调度算法简单实现(c语言)

一、算法思想 电梯算法与扫描算法类似,但磁头不会每次都移动到柱面尽头,一旦当前方向上没有访问请求但相反方向上有请求时,就改变磁头臂的移动方向继续处理。电梯算法的本质是一个具有方向约束的最短寻道时间优先算法(SSTF算法&am…

电梯调度算法-C++

1.算法解析 扫描算法(SCAN)又称电梯调度算法,SCAN算法是磁头前进方向上的最短查找时间优先算法,它排除了磁头在盘面局部位置上的往复移动,SCAN算法在很大程度上消除了SSTF算法的不公平性,但仍有利于对中间…

磁盘寻道算法 电梯调度算法 C++实现

磁盘寻道算法 电梯调度算法 C实现 #include<iostream> using namespace std; #include<vector> #include<algorithm> compute(vector<int> v,int x,int d) {double w1;sort(v.begin(),v.end());if(d1){cout<<endl<<" 磁头从"…

电梯算法java_电梯调度算法总结

一 :任务要求 本次的程序任务和要求如上图所示,需要有4部电梯同时运行,每部电梯都有自己的限制且被同一控制器所控制,希望有图形显示效果,本次的任务我们组已经完成,关于编程的历程与总结现在就一一道来。 二:初步构想阶段 我们先尝试解决最核心的问题,即电梯的调度算法…

群控电梯调度算法

Java面试笔试面经、Java技术每天学习一点 公众号Java面试 关注我不迷路 1.传统电梯调度算法 1.1先来先服务算法(FCFS) 先来先服务(FCFS-First Come First Serve)算法&#xff0c;是一种随即服务算法&#xff0c;它不仅仅没有对寻找楼层进行优化&#xff0c;也没有实时性的特征&…

操作系统实验:驱动调度 模拟电梯调度算法 C语言实现

一&#xff1a;实验内容 模拟电梯调度算法&#xff0c;对磁盘进行移臂和旋转调度。 二.实验题目 (1).“驱动调度”进程和“接收请求”进程能否占有处理器运行&#xff0c;取决于磁盘的结束中断信 号和处理器调度策略。在实验中可用随机数来模拟确定这两个进程的运行顺序&…

Java实现电梯调度算法

Java实现电梯调度算法 电梯算法简介题目代码实现效果图 电梯算法简介 当磁头正在由里向外移动时&#xff0c;电梯调度算法所选择的下一个访问对象应是其欲访问的磁道&#xff0c;既在当前磁道之外&#xff0c;又是距离最近的。这样由里向外地访问&#xff0c;直至再无更外的磁道…

算法高级(39)-坐电梯时情不自禁想起的电梯调度算法实现原理

一、引言 现代社会中&#xff0c;不管你是在北上广、北海道、新加坡&#xff0c;或者是三四五六七八线的小城市&#xff0c;凡是有点规模的地方&#xff0c;高楼大厦都是比比皆是的。而在上下楼的时候&#xff0c;不可避免的会跟电梯打交道。而一般情况你也很少能心平气和地等…

电梯调度

在像芝加哥&#xff0c;纽约&#xff0c;东京&#xff0c;新加坡&#xff0c;香港等大城市里&#xff0c;每天都会有上百万的人通过电梯离开他们的大楼。但是我们却很少考虑电梯是如何调度来提供服务的&#xff0c;尤其是在人流高峰期&#xff0c;这个时候办公楼里的大多数人都…

电梯调度算法

磁盘是一种高速、大容量、旋转型、可直接存取的存储设备。它作为计算机系统的辅助存储器&#xff0c;担负着繁重的输入输出任务、在多道程序设计系统中&#xff0c;往往同时会有若干个要求访问磁盘的输入输出请求等待处理&#xff0c;这时我们就需要采用一种合适的调度算法来使…

苹果主屏幕按钮怎么设置_苹果手机屏幕变大怎么恢复

如果苹果手机屏幕放大起来&#xff0c;其实只要同时使用三个手指快速连续点击手机屏幕两次&#xff0c;手机界面就会恢复正常。还可以在【设置】-【通用】-【辅助功能】中将【缩放】开关关闭。在【辅助功能】中【更大字体】选项中可以调整字体的大小。具体介绍如下&#xff1a;…

苹果主屏幕按钮怎么设置_Mac小技巧 Mac屏幕旋转怎么设置

相信不少的Mac用户在躺下看电子书或者电影的时候&#xff0c;都希望可以将Mac的电脑屏幕进行旋转&#xff01;其实&#xff0c;这个操作是可以实现的呢&#xff01;那么&#xff0c;你知道Mac屏幕旋转怎么设置吗&#xff1f;想要知道答案的话就快来阅读下面的文章吧&#xff01…

苹果屏幕旋转怎么设置_iPhone12屏幕供应商是谁 苹果12屏幕怎么查看是哪家

苹果iPhone12系列手机在10月份正式发售上市&#xff0c;今年的iPhone12全系列都使用了OLED屏幕&#xff0c;官方将这块屏幕称之为超视网膜 XDR 显示屏&#xff0c;那么今年的iPhone12系列屏幕供应商有哪些&#xff0c;怎么分辨自己手上的iPhone12屏幕来自哪家公司呢&#xff0c…

苹果手机投屏软件_苹果手机怎样投屏到笔记本?

注&#xff1a;本文转载自网络&#xff0c;不代表本平台立场&#xff0c;仅供读者参考&#xff0c;著作权属归原创者所有。我们分享此文出于传播更多资讯之目的。如有侵权&#xff0c;请在后台留言联系我们进行删除&#xff0c;谢谢&#xff01; 经常用手机的小伙伴都知道&am…

怎么设置苹果手机的小圆点_苹果屏幕旋转怎么设置?关于苹果手机设置的一些小技巧...

苹果屏幕旋转怎么设置&#xff1f;在平常使用手机观看视频的时候&#xff0c;很多人希望手机屏幕可以自己旋转为横屏状态&#xff0c;在使用微信聊天的时候再自动转为竖屏&#xff0c;这种切换可以直接利用控制中心的一个功能来实现。 如何开启苹果手机的屏幕旋转&#xff1f;首…

苹果屏幕使用时间怎么设置_苹果手机屏幕不能旋转怎么办

很多刚刚接触苹果手机的人&#xff0c;可能不知道怎么使用苹果手机。那么苹果手机屏幕不能旋转怎么办呢&#xff1f;下面就让小编来告诉大家吧&#xff0c;欢迎阅读。 1、苹果手机页面未锁定的情况下从屏幕底端向上滑动&#xff0c;弹出小界面窗口。 2、可以看到小窗口顶部左端…

linux屏幕旋转后触控不准,手机重力感应失效解决方法 不能自动旋转屏幕怎么设置...

如今手机已经成为人们生活中必不可少的一个工具了&#xff0c;在使用过程也常常会遇到各种各样的问题&#xff0c;比如当手机重力感应失效的时候应该怎么解决呢&#xff0c;手机不能自动旋转屏幕要怎么设置&#xff0c;针对这个问题下面就为大家带来最新解决方法&#xff0c;希…

苹果6怎样打开html,苹果6屏幕旋转怎么设置 怎么开启和关闭【图文】

手机在使用的过程中&#xff0c;通常都会有两种状态&#xff0c;横屏与竖屏&#xff0c;大家的使用习惯不一样&#xff0c;所喜欢的状态也不一样&#xff0c;而且手机都会有屏幕自动旋转的情况&#xff0c;它会根据手机的摆放状态自己切换&#xff0c;比较方便大家使用&#xf…

会员管理系统,建议收藏!

你见过会员管理系统吗&#xff1f;在一些线下的美容院&#xff0c;健身房&#xff0c;理发店&#xff0c;往往会有办理会员这样的需求&#xff0c;所以会员管理系统应运而生。那会员管理系统有哪些作用呢&#xff1f; 会员卡&#xff1a;无需填写信息、无需实体会员卡&#xf…