python爬取京东手机数据_用scrapy爬取京东的数据

本文介绍了如何利用Python的Scrapy框架爬取京东网站上的所有手机数据,并将这些数据存储到MongoDB数据库中。文章详细分析了京东搜索页面的结构,包括如何处理分页和隐藏链接,以及如何构造请求参数。最后,通过设置Scrapy爬虫,成功实现了数据抓取和存储,并在MongoDB中检查了抓取的数据。
摘要由CSDN通过智能技术生成

本文目的是使用scrapy爬取京东上所有的手机数据,并将数据保存到MongoDB中。

一、项目介绍

主要目标

1、使用scrapy爬取京东上所有的手机数据

2、将爬取的数据存储到MongoDB

环境

win7、python2、pycharm

技术

1、数据采集:scrapy

2、数据存储:MongoDB

难点分析

和其他的电商网站相比,京东的搜索类爬取主要有以下几个难点:

1、搜索一个商品时,一开始显示的商品数量为30个,当下拉这一页 时,又会出现30个商品,这就是60个商品了,前30个可以直接 从原网页上拿到,后30个却在另一个隐藏链接中,要访问这两个 链接,才能拿到一页的所有数据。

2、隐藏链接的构造,发现最后的那个show_items字段其实是前30个商品的id。

3、直接反问隐藏链接被拒绝访问,京东的服务器会检查链接的来源, 只有来自当前页的链接他才会允许访问。

4、前30个商品的那一页的链接page字段的自增是1、3、5。。。这 样的,而后30个的自增是2、4、6。。。这样的。

下面看具体的分析。

二、网页分析

首先打开京东的首页搜索“手机”:

1139339-20181004173304678-1233903744.png

一开始他的地址是这样的:

1139339-20181004173334398-766846817.png

转到第2页,会看到,他的地址变成这样子了:

1139339-20181004173453917-280544280.png

后面的字段全变了,那么第2页的url明显更容易看出信息,主要修改的字段其实就是keyword,page,其实还有一个wq字段,这个得值和keyword是一样的。

那么我们就可以使用第二页的url来抓取数据,可以看出第2页的url中page字段为3。

但是查看原网页的时候却只有30条数据,还有30条数据隐藏在一个网页中:

1139339-20181004173620791-1603150962.png

从这里面可以看到他的Request url。

再看一下他的response:

1139339-20181004173713305-59195181.png

里面正好就是我们需要的信息。

看一下他的参数请求:

1139339-20181004173758759-1719044756.png

这些参数不难以构造,一些未知的参数可以删掉,而那个show_items参数,其实

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值