Python爬虫在导购系统中的应用

阅读: 评论:0

2024年1月25日发(作者:)

Python爬虫在导购系统中的应用

第37卷第2期2021年2月福建电脑Journal of Fujian ComputerVol. 37

No.2Feb. 2021Python爬虫在导购系统中的应用黄震高蕾冼沛杰谢杰峰陈智超惠州学院计算机科学与工程学院广东惠州516007)2 (惠州学院电子信息与电气工程学院广东惠州516007)11121摘要近年来,随着互联网的发展,出现了网上购物这种全新的购物方式。网上购物己经成为年轻人购物的主要方式。但

Python爬虫的优惠券型导购系

统。将淘宝、天猫、京东三大电商网站作为数据源,使用Python的requests、selenium等模块结合IP代理反反爬虫技术将

商品信息与优惠券信息爬取下来,对信息进行数据清洗并存入mongo

DB数据库中,由后台服务器程序整理数据,并在基于

HTML5的安卓端APP展示出来供用户查看与选择。该系统简单高效,可以改善用户的购物体验,具有较高的实用价值。

关键词IP代理;优惠券;导购系统;爬虫;HTML5

中图法分类号

TP319

DOI:10.16707/.2021.02.004网上的商品琳琅满目,如何挑选物美价廉的商品成为需要解决的问题,由此设计了一个基于Application of Python Crawler in Shopping Guide SystemHUANG

Zhen1,

GAO

Lei1,

XIAN

Peijie1,

XIE

Jiefeng2,

CHEN

Zhichao11

(School

of

Computer

Science

and

Engineering,

Huizhou

University,

Huizhou,

China, 516007)2

(School

of

Electronic

Information

and

Electrical

Engineering,

Huizhou

University,

Huizhou,

China, 516007)Abstract

In

recent

years,

with

the

development

of

the

Internet,

a

brand-new

way

of

shopping (i.e.,

online

shopping)

has

emerged.

Online

shopping

has

become

the

main

way

for

young

people

to

shop.

However,

there

are

a

dazzling

array

of

online

products,

and

how

to

choose

high-quality

and

inexpensive

products

has

become

a

problem

that

needs

to

be

solved.

Therefore,

a

coupon-type

shopping

guide

system

based

on

Python

crawler

is

designed.

Using

Taobao,

Tmall,

and

Jingdong

as

the

data

source,

the

system

uses

python's

requests,

selenium

and

other

modules

combined

with

IP

proxy

anti-anti-crawler

technology

to

crawl

down

product

information

and

coupon

information.

The

obtained

information

is

cleaned

and

saved

in

a

mongo

DB

database.

The

stored

data

is

sorted

by

a

background

server

program

and

displayed

in

a

HTML5-based

Android

APP

for

users

to

view

and

select.

The

system

is

simple

and

efficient.

It

can

improve

the

user's

shopping

experience,

and

has

high

practical

ds

IP

Proxy;

Coupons;

Shopping

Guide

System;

Crawler;

HTML51引言近年来,随着互联网的飞速发展,以及网络化、

电商智能化、物联网等技术的兴起和国内物流效率

的不断提高,越来越多的人改变传统的购物方式,将方便快捷的网上购物作为主要的购物方式[1-2]。新

的购物方式会产生各种各样的新问题,买家不仅需

要从琳琅满目的商品中挑选自己需要的商品,还要

兼顾优惠、价格、挑选时间的问题[3]。为了解决这

些问题,本文设计了一款基于Python爬虫的优惠券

型导购系统。本系统可以帮助用户更好地挑选所需E-mail: 195146501@。高蕾,女,1976年生,主要研究领域为数据库设计、软件开发。Email: 377214787@。冼沛杰,男,1998年生,

主要研究领域为Python爬虫。E-mail:1270994432@。谢杰峰,男,1998年生,主要研究领域为Java后端开发。E-mail:1543493541@。

陈智超,男,1997年生,主要研究领域为Web前端开发。E-mail: 761919540@。本文得到广东省大学生创新训练项目(No.S2)资助。黄震(通信作者),男,1980年生,主要研究领域为算法、程序设计、无线网络,

2021 年福建电脑15要的商品,便于领取某件商品的优惠券,同时还可

以将天猫、淘宝、京东的商品同时进行比价。本系

统使用Python语言作为基本的爬虫工具,使用

Python 的

requests、selenium、re 等模块结合

IP 代理池技术,爬取淘宝、天猫、京东三大电商网站商

品信息与优惠券信息,通过任务调度策略,对信息

进行数据清洗并存入mongo

DB数据库中[5],由后

台服务器程序整理数据,并在基于HTML5的安卓

端APP展示出来,供用户查看与选择领取优惠券。2系统的整体架构该系统主要由Python爬虫程序、IP代理池管

理程序、数据库服务器、安卓客户端四大部分构成。

系统的实现原理如下:IP代理池管理程序将“西刺

代理” “快代理”“六六代理”等提供免费代理IP

资源的网站作为IP源,定期获取IP,存入Redis

数据库中,并通过多任务调度策略,合理去除数据

库无效或重复的IP,维护一个针对“淘宝”“京东”

“天猫”的代理池。Python爬虫程序,根据设定好

的时间,定期使用IP代理池中的IP访问目标网站,

爬取相关数据并存入mongo

DB数据库中供数据库

服务器调用。爬虫程序定期检测数据库中的商品信

息的有效性,去除重复和无效的信息。当用户想要

购物或想要领取相关的优惠券时,打开安卓端APP

输入相关关键字,向数据库服务器发出相应的请求

后,数据库服务器返回相关的信息在安卓端呈现。

系统整体架构如图1所示:客户端图1系统整体架构图3系统的整体架构3.1

IP代理池管理程序设计IP代理池管理程序实现的功能是维护一个针

对“淘宝” “京东”“天猫”的代理池,以供爬虫

程序使用。IP代理池管理程序主要负责IP代理池

的创建、维护和提供外部接口[6]。3.1.1

IP代理池创建IP代理池创建基本流程如下:(1) 代理IP米集:使用Python的requests抓取多个代理IP源网站的最新IP数据。(2)

IP高效存储:代理IP存入Redis数据库

中。Redis数据库是基于Key-Value数据存储方式的

高性能NoSQL数据库,可满足海量读写的要求[7]。

IP代理池创建流程如图2所示:IP代理池管理

程序启动从代理IP源获取IP将获取的代理IP存入

Redis中结束图2

IP代理池创建流程图

3.1.2

IP代理池的维护IP代理池管理程序创建IP池后,定期检查整个

数据库,使用多线程异步请求技术,将整个IP代理

池中的IP进行测试并评分。满分十分,若可以连通

目标网站则分数加满,否则分数减1,当分数减到

零时将该IP从数据库中删除。IP代理池的维护流

程如图3所示:库

16黄震等:Python爬虫在导购系统中的应用第2期图3

IP代理池的维护流程图3.1.3

IP代理池外部接口的提供使用Python的flask框架构建简易服务器,向

外部提供提取代理IP的接口。当服务器接收到外部

请求时,按IPIP的可用性优先级从IP代理池中提取

并返回。外部接口服务器工作流程如图4所示。图4外部接口服务器工作流程图3.2

Python爬虫程序设计Python爬虫程序主要负责商品信息以及优惠券

信息的获取。根据设定好的时间,定期使用IP代理

池mongo中的IP访问目标网站,爬取相关数据并存入

DB数据库中,供数据库服务器调用。3.2.1商品信息爬取商品信息爬取基本流程为:(1) 定时启动爬虫程序。(2) 调用代理池管理程序接口,获取可用

代理

IPIP。(3) 使用requests库构建关于目标页面的请求,获取页面数据。(4) 使用re模块提取需要的商品信息。(5) 将数据更新到mongo

DB数据库中。商品信息爬取流程如图5所示。图5商品信息爬取流程图

3.2.2

商品优惠券爬取商品优惠券可以从‘‘券多多”、‘‘比比乐”等提

供优惠券搜索的网站爬取。此类网站反爬虫能力较

2021 年福建电脑17强,因此可以使用Python

selenium模块,模拟浏览器的行为对信息进行爬取。商品优惠券爬取基本流程如下:(1) 启动爬虫程序。(2) 检索商品数据库中的条目,构建相应的

爬取任务。(3) 使用selenium框架模拟浏览器操作,访问目标网站。(4) 使用RE模块对目标网站进行分析,提取

相关信息(5) 将优惠券信息存入mongo

DB数据库中。

商品优惠券爬取的流程如图6所示。图6商品优惠券爬取流程图

3.3服务器软件设计服务器程序由Java语言开发,使用Socket技术

完成与客户端的网络通信[8]。服务器软件是商品数

据库和用户端程序交互的接口,并向客户端提供一

系列诸如登录、注册、收藏等操作的API。服务器

软件设计流程如图7所示。图7服务器软件设计流程图

3.4安卓端APP设计安卓端APP使用HTML5开发,经过封装后可

以直接在安卓端上运行。安卓端APP的主要功能是

与用户进行交互,使用户可以使用登录、注册、搜

索商品、收藏商品、领取优惠券、监控商品价格等

功能。APP后台设计流程如图8所示:图8

APP后台设计流程图4反反爬虫措施4.1IP代理原理IP代理指的是代理服务器,它的功能是代理网

18黄震等:Python爬虫在导购系统中的应用第2期络用户去获取相关网络数据,通常用来隐藏网络用

户的真实IP地址。通常网站反爬虫是通过IP访问

频率识别出该请求是否由爬虫程序发出的,当请求

一个HTTP页面时,通常是客户端向WEB服务器

发送一个请求,WEB服务器再返回一个响应包。

但当我们使用IP代理时,客户端发出的数据包会先

到达代理服务器,代理服务器收到数据包后会进行

分析,并代替我们发出一个访问目标网站的HTTP

请求给WEB服务器。WEB服务器收到请求后返回

一个响应包给代理服务器。代理服务器收到响应包

后再返回给用户。此时WEB服务器就不知道真正

请求WEB页面的是客户端,而认为是代理IP服务

器。因此使用IP代理可以实现反反爬虫的目的。为了保证IP代理池的高可用性,必须划分一定

的模块,以一定的步骤维持IP代理池。主要分为四

个步骤[9]:(1) 代理IP的采集:使用网络爬虫结合多线

程技术快速从多个IP源提取大量的IP。(2)

IP高速存储:将爬取到的大量IP信息存

入高性能的数据库中。在Web 2.0/3.0时代下,新型

的NoSQL存储系统可支持超大规模数据存储,较

好支持高并发低延时的Web应用[10]。本系统使用的

是Redis存储。(3)

IP检测刷新:代理IP的可用性是随时间

变化的,不够稳定。因此为了保持代理IP的高可用

性,必须定期对IP池里的IP进行检测更新。本系

统使用的是积分制方法:定期检查整个数据库,使

用多线程异步请求技术,将整个IP代理池中的IP

进行测试并评分。满分十分,若可以连通目标网站

则分数加满,否则分数减1,当分数减到零时将该

IP从数据库中删除。(4) 外部接口服务:该服务是连接IP代理池

和爬虫程序的接口。外部爬虫可以通过调用该服务

获取IP代理池中的可用代理IP。4.2

selenium 框架Selenium框架是一个浏览器自动化测试框架,

经常用于网络爬虫模拟人工操作浏览器的自动化

操作中。Selenium框架支持多语言开发,比如

Python、Java、C、Ruby等。该框架支持模拟多款

浏览器操作,如Chrome、IE浏览器、火狐浏览器。

通常使用Python+Selenium+Chrome的组合完成爬

虫程序的设计,其中Chrome负责获取和渲染解析

Javascript,Selenium负责驱动浏览器与Python程序

进行对接,再由Python完成数据的处理,三者构成一个完整的爬虫结构[11]。某些浏览器操作,比如操

作滑块、登录等操作使用编程语言不好模拟,但使

用selenium就可以很容易地解决问题。5系统的实现5.1

IP代理池的实现在服务器搭建好Redis数据库后,部署IP代理

池管理程序,设置为定时更新IP代理池数据库。使

用远程数据库管理软件连接服务器数据库后可以

看到爬取到的代理IP地址。部分代理IP如图9所

示,其中value为“IP地址:端口号”格式,score

为“分数”。图9部分代理IP

5.2商品信息爬取的实现图10部分商品信息

2021 年福建电脑19在服务器搭建好mongo

DB数据库与Python爬

虫程序所需要的Python库后,部署Python爬虫程

序,设置为定时获取并更新商品数据,同时存入

mongo

DB数据库中。使用远程数据库管理软件连

接服务器数据库后可以查看商品信息。商品数据库

中每个记录主要包含商品ID、商品名称、领取优惠

券的URL等字段。部分商品信息如图10所示。5.3安卓端界面的实现-C3~7«lt»跡(DELL)游戏本灵越游fflG7 7 S90 1S.6英寸九代i7...提吃鸡i优懸价H7999距离活S»S亲町司* 07- 7,關帅F117

17.3® 寸 144hz游财i7-…10875H/RTX2070SupertgVtmv). H 15999图11部分功能界面安卓端APP实现登录、注册、搜索商品、收藏

商品、领取优惠券等功能。部分功能界面截图如图

11所示。6结语本系统基于Python语言及其相关的库,利用IP

代理池、selenium等技术实现了爬取“淘宝”“京

东” “天猫”三大电商网站的商品信息并存入mongo

DB数据库中,通过数据库服务器与客户端的通信,

最终实现将商品与商品优惠券信息呈现于客户端

界面,供用户选择。该系统简单高效,可以改善用

户的购物体验,具有较高的实用价值。参考文献[1]邹彬彬.大数据下的电商导购管理系统的设计与实现[硕士学位论

文].大连理工大学,大连,2018P]王向晖.基于消费者心理的网络营销策略.鄂州大学学报,2020,27(03):

54-55,67[3] 郭琪,潘旭伟.电子商务中的个性化推荐研究.电子商务,2020(07):

50-51[4] 温娅娜,袁梓梁,何咏宸,黄猛.基于Python爬虫技术的网页解析与数据

获取研究.现代信息科技,2020,4(1):12-13[5] 李垚周,李光明.分布式数据清洗系统设计.网络安全技术与应用,

2020(2):60-62[6] 白杨.Python代理IP定向采集爬虫的设计与实现.中国新通信,2019,21(01):35-36[7] 马豫星.Redis数据库特性分析.物联网技术,2015,5(3):105-106[8] 王智印,李丹.Java基于TCP/IP协议的Socket通信.产业与科技论

坛,2017,16(21):41-42[9] 王佳鹏,徐海蛟,许培宇,何佳蕾,林冠成.面向网络爬虫的高可用动态

池系统设计与实现.福建电脑,2019,35(6):8-11[10] 马文龙,朱妤晴,蒋德钧,等.Key-Value型NoSQL本地存储系统研究.

计算机学报,2018,41(08):1722-1751[11] 樊涛,赵征,刘敏娟.基于Selenium的网络爬虫分析与实现.电脑编程

技巧与维护,2019(9):155-156

Python爬虫在导购系统中的应用

本文发布于:2024-01-25 20:59:44,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/1706187584296.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:代理   爬虫   数据库   商品   优惠券
留言与评论(共有 0 条评论)
   
验证码:
排行榜

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23