用scrapy对京东手机板块进行爬虫(小白一枚,大佬勿喷!!!)

再次声明,本人是个小白,只是运用到自己所学习到的知识进行爬虫,请谅解!!

话不多说,此次用的是scrapy框架。在此之前你需要稍了解常用的request库、re(正则表达式)、xpath(内容提取),还有就是python入门(很基础)的语法。

当然使用他们必须要安装他们,安装的语法是 pip install scrapy,其他库同理。

爬取网页网址https://list.jd.com/list.html?cat=9987%2C653%2C655&qrst=1

1.项目开始(一些必要的设置)

使用scrapy框架进行项目的创建,scrapy库与我们平时一般所写的爬虫项目不太一样,它有专门创建方式

例如,我在D盘下创建了一个文件夹,之后我要将自己的项目创建在这里

之后在上方图片的位置输入cmd,然后回车。这样可以快速的进入该文件的终端。就不需要你在一遍遍的CD...

再之后输入scrapy startproject  filename(你的项目名),如果正常,你界面应该是以下的情况,就说明你的项目创建好了。当然如果你想了解scrapy其他的命令,你可以直接输入scrapy -h,就会显示常用的命令操作。

文件创建好后,打开文件,可以使用vscode,也可以使用pycharm。都可以,看你。在这里我用的是vscode。打开文件后你会发现生成了好多个python文件,这些文件是scrapy自动生成的,有的内容是空的,但是切记每个文件都不要删,即使是空的文件。

注意注意注意:在这里我直接用的是之前写的文件进行讲述,并不是打错了。

之后是自己爬虫文件的建立,在spiders中自己创建一个用来爬虫的文件,在这里我创建了一个jdphone的文件,之后我会在这个文件中书写我爬虫的代码。

在这时,你还有一些准备工作没做,你需要稍微setting.py中的一些内容。

如机器人协议:将true改为false,如果不改你可能什么都爬不到,网站大多都是有这个协议的

时间设置:意思是多长时间请求一次,最好打开它,不然容易被网站识别出来,之后会封掉掉你的IP

请求头设置:为了能够取得数据,不被网站识别,其中的user-agent需要手动添加,添加方式就是你随便打开一个网页按F12(也可以右键检查,然后就能找到了,这里我就不细说了),当然也可以直接输入http://www.httpbin.org/user-agent。如果你会自己设置多个请求头,那当然是更好的了。

还有以下两个也要打开,一个是中继器(如之前所说的多个请求头可在这里设置),一个是管道文件(用来存储数据)。你的文件内容跟我会不一样,你只要打开这两个功能即可。注:这里面所带的数字,是用来控制项目的顺序的,数字越小越先运行,数字不能一样,依你而定。

2.编写项目

以下的文件需要一起看,不要看完一个看一个

jdphone文件:

在这里你可能会说xpath我不熟怎么办啊,你可以如下操作,找到内容所在位置后,在代码为蓝色的区域右键,你会找到一个copy按钮,点击它,你就会找到一个copy xpath,你复制它就可以了,由于我选择的是张图片,在标签img中的src,所以你还要在你复制的xpath中加上/@src。具体为什么可以看这里https://www.w3school.com.cn/xpath/xpath_syntax.ASP

还有你可以在谷歌浏览器中安装一个xpath插件,方便你确定内容。如插件xpath helper

对于css样式提取,与上述基本一样,只是复制的是copy selector,当然还需要做一些小的变动。

items文件:这其中的内容以你而定,如其中的name、price可以随意更换

pipelines文件

该文件用了两个类,一个类是生成json格式的数据,一个是生成CSV格式的数据,依你选择生成的格式。

3.启动项目

方法一

在终端中输入scrapy crawl name(name就是你之前设置的名字,我的名字是jdphone,切记这里不是文件名)

方法二

创建一个start.py文件,名字依你。像这样

创建好后,输入以下即可。启动的话就是按照正常python文件在vscode中启动就可以。

你可能感兴趣的:(用scrapy对京东手机板块进行爬虫(小白一枚,大佬勿喷!!!))