再次声明,本人是个小白,只是运用到自己所学习到的知识进行爬虫,请谅解!!
话不多说,此次用的是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中启动就可以。