爬取中机昌盛商城数据

本文介绍了一个爬虫项目,通过Python的Selenium库爬取中机昌盛商城的商品数据,包括品牌、库存、价格等信息,并详细讲解了如何分析网站结构,选择技术方案以及如何将数据存储到MySQL数据库中。
摘要由CSDN通过智能技术生成

爬取中机昌盛商城数据.md

1.介绍项目

2.分析网站结构

3.说明技术选择

4.数据存储于MySQL中

5.完整代码

1. 介绍项目

爬取中机昌盛商城,以型号,品牌或货位仓码为查询条件(例如GP)来获取结果页面的商品数据。要求如下(2和4选择其一实现即可,选择第四项可加分):
1.需要获取的数据有商品、产地、库存、价格、发货地、发货仓
2.搜索结果的每一页数据都要爬取,至少要有20个品牌(20个搜索结果)的数据量,或者五大地区的搜索结果页面数据。
3.可任意选择爬虫框架,但使用selenium扣300分。
4.做成动态搜索程序,即由用户选择搜索的内容(当用户输入GP时,返回GP搜索页的数据,其它同理),并给出提示,而不是代码固定搜索的内容。
5.数据存储于MongoDB或MySQL中。
6.提交的文章需要有环境分析、页面分析与代码分析,否则相应扣分,文章内容要满足初学者小白可阅读,优秀文章加分

网址:https://www.zjshop.com.cn

2. 分析网站结构

复制网址(中机昌盛商城 (zjshop.com.cn))到浏览器,鼠标右键点击查看,再点击网络,刷新网页抓包。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v9Wq40RU-1666850905619)(C:\Users\16611\Desktop\项目\9.爬取中机昌盛商城数据\图片\1.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oV6Jcy8P-1666850905621)(C:\Users\16611\Desktop\项目\9.爬取中机昌盛商城数据\图片\2.png)]

发现该网址请求方式为get请求,编码格式为utf-8。

任意选择一个品牌,进行数据抓包,发现该包有我们所需数据。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vXuksEXi-1666850905622)(C:\Users\16611\Desktop\项目\9.爬取中机昌盛商城数据\图片\3.png)]

为了更好地抓取想要的品牌数据,对比两家品牌的url,发现其的不同之处在于参数pbrandName=???,由此我们可以使用input函数对所需品牌数据抓取。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wNhyj1Tp-1666850905623)(C:\Users\16611\Desktop\项目\9.爬取中机昌盛商城数据\图片\4.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DBnUyjY9-1666850905625)(C:\Users\16611\Desktop\项目\9.爬取中机昌盛商城数据\图片\5.png)]

3.说明技术选择

爬取该网页的方法多种多样,此文章选择selenium进行抓取。

导入所需模块

from selenium import webdriver
import time  # 时间模块

使用xpath获取库存数据,其他数据同理可得,将说获取数据添加到对应列表。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IXoAFzi8-1666850905626)(C:\Users\16611\Desktop\项目\9.爬取中机昌盛商城数据\图片\11.png)]

    # 1商品
    aaa = driver.find_elements_by_xpath('/html/body/div[8]/div/div[2]/table/tbody/tr[*]/td[1]/div/div[2]/a/p/span')
    list_name = []
    for a in aaa:
        list_name.append(a.text)
    # print('商品:', list_name)
    # 将每页所获取的数据追加到列表
    lists_name += list_name

    # 2发货仓
    aaaa = driver.find_elements_by_xpath('/html/body/div[8]/div/div[2]/table/tbody/tr[*]/td[2]/div/span')
    list_warehouses = []
    for aa in aaaa:
        list_warehouses.append(aa.text)
    # print('发货仓:', list_warehouses)
    # 将每页所获取的数据追加到列表
    lists_warehouses += list_warehouses

    # 3发货地
    ele = driver.find_elements_by_xpath('/html/body/div[8]/div/div[2]/table/tbody/tr[*]/td[3]/div/span')
    list_place = []
    for ele2 in ele:
        list_place.append(ele2.text)
    # print('发货地:', list_place)
    # 将每页所获取的数据追加到列表
    lists_place += list_place
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值