0
点赞
收藏
分享

微信扫一扫

python项目之当当网


目录

​​一、学习资源​​

​​二、知识点介绍​​

​​1、scrapy介绍​​

​​ 2、scrapy安装与错误解决​​

​​3、scrapy基本使用​​

​​4、项目结构和基本方法 ​​

​​         (1)实例: ​​

​​5、架构组成​​

​​ 6、scrapy工作原理​​

​​        (2)实例:汽车之家 ​​

​​三、项目分析​​

​​        (1)首先定位到要获取的数据的标签的属性​​

​​        (2)获取数据​​

​​         (3)检查​​

​​                问题①​​

​​                原因及解决办法​​

​​                问题②​​

​​                原因及解决办法​​

​​         (4)下载(单个管道)​​

​​                        ①先定义数据结构(items程序)​​

​​                        ②管道下载​​

​​                         ③下载数据到文件中​​

​​                 (5)多个管道下载​​

​​                                        ①定义管道类​​

​​                                         ②在settings中开启管道​​

​​              (6)多个管道下载实现​​

​​ 四、项目源码​​

一、学习资源

二、知识点介绍

1、scrapy介绍

python项目之当当网_数据挖掘

 2、scrapy安装与错误解决

python项目之当当网_数据挖掘_02

3、scrapy基本使用

 

python项目之当当网_python_03

python项目之当当网_项目结构_04

python项目之当当网_数据挖掘_05

4、项目结构和基本方法 

python项目之当当网_数据_06

         (1)实例: 

python项目之当当网_项目结构_07

5、架构组成

 6、scrapy工作原理

python项目之当当网_数据_08

        (2)实例:汽车之家 

python项目之当当网_数据_09

python项目之当当网_python_10

python项目之当当网_数据挖掘_11

三、项目分析

        (1)首先定位到要获取的数据的标签的属性

python项目之当当网_python_12

        (2)获取数据

上一个案例用的是把所有的数据下下下来保存到一个列表中,然后再通过遍历的方式去一个一个收数据的取,这里介绍一个新的方法:seletor对象可以再次调用xpath方法,也就是说先把统一的路径给分离出来,然后再调用xpath。

python项目之当当网_数据挖掘_13

         (3)检查

                问题①

                        所有的图片路径都是一样的

        

python项目之当当网_数据挖掘_14

                原因及解决办法

                        这是一种常见的反爬手段,图片的懒加载,即图片的真正路径不是@src了(除了第一个以外),发现问题之后再去检查网页,发现除第一个以外的图片路径为@data-original。

                        第一次路径:

python项目之当当网_数据_15

                        之后的路径:

python项目之当当网_数据_16

                问题②

python项目之当当网_项目结构_17

                        当把路径改为@data-original之后,发现第一张图片为none

                原因及解决办法

                        检查之后发现其实第一章图片的位置没有变,只是后面的懒加载所以变了,所以此处要进行判断。当是第一张图片的时候路径就为@src,其它情况为@data-original。

                

python项目之当当网_数据_18

         (4)下载(单个管道)

                        ①先定义数据结构(items程序)

python项目之当当网_项目结构_19

                        ②管道下载

                                (1)先在settings中开启管道 解开ITEM_PIPELINES的注释

                                (2)将获取的值传入管道中

python项目之当当网_python_20

                         ③下载数据到文件中

python项目之当当网_数据挖掘_21

注:这种模式不推荐 因为每传递过来一个对象 那么打开一个文件 对文件的操作过于频

 改进:

python项目之当当网_python_22

                 (5)多个管道下载

                                        ①定义管道类

                                         ②在settings中开启管道

 

python项目之当当网_数据_23

python项目之当当网_数据挖掘_24

              (6)多个管道下载实现

每一页的爬取的业务逻辑全部都是一样的,所以我们只需要将执行的那个页的请求再次调用parse方法就可以了(注意页码的变化),页码的变化会引起url的变化,这是需要注意的点

python项目之当当网_python_25

python项目之当当网_数据_26

 四、项目源码

        此项目包含多个函数和文件,需要源码的评论区留言即可。

举报

相关推荐

0 条评论