• Stars
    star
    188
  • Rank 205,563 (Top 5 %)
  • Language
    JavaScript
  • Created over 5 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

拼多多商品信息爬虫

拼多多商品信息爬虫

  通过拼多多商品API获取商品信息。

项目目录

│  .gitignore
│  README.md
│  requirements.txt
│  scrapy.cfg
│
└─pinduoduo
    │  email.py
    │  items.py
    │  main.py
    │  middlewares.py
    │  pipelines.py
    │  settings.py
    │  view.py
    │  __init__.py
    │
    ├─images
    ├─spiders
    │      pdd.py
    │
    ├─utils
    │      anti_content.js
    │
    └─view
            db.png
            FZSTK.TTF
            pdd.png
            show.jpg
            ...

环境依赖

第三方库 描述
scrapy pip3 install scrapy
execjs pip3 install execjs
xlrd pip3 install xlrd
pyecharts pip3 install pyecharts
wordcloud pip3 install wordcloud
jieba pip3 install jieba

  注意:上述安装均在Windows环境下进行时,可能会出现依赖不足而导致安装错误的情况,请自行谷歌解决。

解释说明

  首先,拼多多商品信息接口很容易在谷歌浏览器中找到,但是接口请求中有三个未知参数。其中 filp 和 list_id 参数在网页源码中携带,正则匹配获取即可。而 anti_content 加密参数在每次请求时都需要携带,具体解密过程我不叙述(怕侵权),谷歌有很多。

  其次,本项目的可视化部分略带针对性,如果需要匹配到其他商品,需要自行修改代码。

  最后,不要设置随机UA中间件(亲测坑),拼多多对请求的请求头检查比较严格,可自行在网页中粘贴 User-Agent 即可。

......

headers = {
        'user-agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
                  "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
    }
    
......

yield Request(url=self.search_url + urlencode(data),
                          headers=self.headers,
                          callback=self.parse_goods_info,
                          errback=self.error_back,
                          dont_filter=True)

  已实现的中间件:ProxyMiddleWare(未启用,暂时未发现IP反爬),已实现的管道:ImagePipeline、TextPipeline、ExcelPipeline、MysqlTwisted。

数据分析

  (本次商品的数据分析仅针对搜索参数iPad)

price_zone

tags

词云

更新记录

  • 2019/4/21 项目整体架构完成
  • 2019/4/22 项目部署

项目部署

  已完成scapyd 本地部署。

运行

  命令行切换至项目根目录下,运行命令:

>>> scrapy crawl pdd

  命令行切换至项目中main.py所在目录下,运行命令:

>>> python main.py

  或者 scrapyd-client 打包部署到本地服务器,然后运行命令:

>>> curl http://localhost:6800/schedule.json -d project=pinduoduo -d spider=pdd

公告

  本代码仅作学习交流,切勿用于商业用途,否则后果自负。若涉及拼多多侵权,请邮箱联系,会尽快处理。