安装开发需要的一些库

(1) 安装mysql 的驱动:在Windows上按win+r输入cmd打开命令行,输入命令pip install pymysql,回车即可。

(2) 安装自动化测试的驱动selenium:在命令行中输入pip install selenium回车。

(3) 安装标签解析库pyquery: 在命令行中输入pip install pyquery回车。

(4) Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项,下载anaconda,安装后配置环境变量,在path中添加E:\Anaconda3\anaconda\Library\bin,重启电脑使环境变量生效,安装jieba库,在命令行中输入pip install jieba回车。

index.html,并将chromedriver.exe放在Python安装目录的Scripts文件夹下。

实现

爬取数据的实现主要是用到了Pyquery、selenium库,以下代码主要实现了对淘宝的检索、翻页和对数据的提取。

'''

遇到不懂的问题?Python学习交流群:821460695满足你的需求,资料都已经上传群文件,可以自行下载!

'''

# 设置网站最大响应时间

wait=WebDriverWait(driver,50)

class TaoBaoSearch:

# 初始化,默认搜索为None,创建数据库连接

def __init__(self,search=None):

self.name=search

self.mysql=to.Data_oper()

# 对淘宝网的搜索

def search(self):

# 设置源网站,这里设置淘宝网站为源网站

driver.get("https://www.taobao.com/")#J_TSearchForm > div.search-button > button

# “q”为淘宝首页输入框的标签,这里定位到该输入框,并设置要搜索商品的名字

imput=driver.find_element_by_id("q")

imput.send_keys(self.name)

# wait.until()该方法的作用是加载出来搜索结果总页数之后开始往下执行

pageText=wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,"#mainsrp-pager > div > div > div > div.total")))

total=re.search("\d+",pageText.text)

# 该方法返回搜索结果的总页数

return total.group(0)

# 提取出相应的数据

def parseHtml(self):

html=driver.page_source#获取网页源代码

doc=qp(html)

# 得到到class为m-itemlist下面的class是.items .item的div

iteams=doc(".m-itemlist .items .item").items()

# 根据标签选择器提取出需要的数据

for item in iteams:

# src=item(".pic .img").attr("src")

src=item(".row .J_ClickStat").attr("href") # 该店铺的链接

person=item(".row .deal-cnt").text() #购买该商品的人数

title=item(".row .J_ClickStat").text().split("\n") # 标题

shop=item(".row .shopname").text() # 商品

location=item(".row .location").text() # 地区

# 将提取到的数据放到数组中保存起来

data=[]

data.append(str(title[0].strip()))

data.append(str(shop.strip()))

data.append(str(location.strip()))

# 剔除无用字

data.append(str(person[:-3].strip()))

data.append(str(src).strip())

# 调用mysql.insert_data()方法将提取到的数据插入到数据库中

self.mysql.insert_data(data)

# 对网页进行翻页的方法

def nextpage(self,pagenumber):

# 定位到翻页的按钮前的输入框,也就是对其进行跳转

pageInput=driver.find_element_by_css_selector("#mainsrp-pager > div > div > div > div.form > input")

pageInput.clear()

pageInput.send_keys(pagenumber)

# 定位到跳转按钮,对其进行翻页

pageButton=driver.find_element_by_css_selector("#mainsrp-pager > div > div > div > div.form > span.btn.J_Submit")

pageButton.click()

wait.until(EC.text_to_be_present_in_element((By.CSS_SELECTOR,"#mainsrp-pager > div > div > div > ul > li.item.active > span"),str(pagenumber)))

self.parseHtml()

# 定义主函数,调用上面的的方法

def main(self):

total=int(self.search())

for i in range(2,total):

self.nextpage(i)

self.mysql.close()

以下代码是一个排序的算法,其主要作用是在界面上显示多少行数据,主要思路为:根据用户输入的数字创建一个数组,读取数据库中得到数据,分离出来购买人数并转换成int类型,将数据每次添加一个到数组中,当数组的长度等于用户想要显示最大行数时,对其数组中的数据从大到小进行排序,接下来,每当读取一个数据之后,就对数组中最小的那个进行比较,如果比起小,就跳过,否则,对该数据进行插入操作,并删除之前最小的那个数据,最后数组中保存的就是购买人数最多的前n条数据。

主要代码如下:

'''

遇到不懂的问题?Python学习交流群:821460695满足你的需求,资料都已经上传群文件,可以自行下载!

'''

#对数据进行排序,data为购买人数

def shot_data(self,data,i=10): # i为用户想要显示的最大行数,默认为10行

top=[]

if i>len(data):

i=len(data)

for x in data:

if len(top)

top.append(x)

if len(top)==i:

top.sort(reverse=True) # 数组内的数据进行排序

else:

l=len(top)

y=len(top)

t=1

if x>top[l-1]: # 判断其数值是否大于数组内的最小值

while x>top[l-t] and y>0: # 控制循环条件

t+=1

y-=1

if y!=0: # y的值若是==0,那么该数值就是最大值

for c in range(1,t):

top[l-c]=top[l-c-1]

top[l-t+1]=x

else:

for c in range(1,t):

top[l-c]=top[l-c-1]

top[0]=x

return top # 返回装有最大的前i个数的数组

以下代码是对评论进行关键词的提取,用到了jieba库中的一些方法。

主要代码如下:

def dis_an(self):

# 清空显示界面

self.txtMess.delete(1.0,END)

t=to.Data_oper()

# 得到数据库中的存储信息

test=t.dis_only_discuss()

# 定义字符串adg,v

adg=""

v=""

# 对评论进行分割并标注词性

word=psg.cut(test)

# w为词意,f为词性

for w,f in word:

# 判断词性是否为形容词

if f.startswith('a'):

print(w)

adg=adg+","+w

# 判断词性是否为动词

elif f.startswith('v'):

v=v+","+w

# 根据该词的权重提取出前5个词

tags=jieba.analyse.extract_tags(adg,topK=5)

tags1=jieba.analyse.extract_tags(v,topK=5)

python爬淘宝店铺_【Python爬虫案例学习】Python爬取淘宝店铺和评论相关推荐

  1. python爬去百度百科词条_Python爬虫入门学习实践——爬取小说

    本学期开始接触python,python是一种面向对象的.解释型的.通用的.开源的脚本编程语言,我觉得python最大的优点就是简单易用,学习起来比较上手,对代码格式的要求没有那么严格,这种风格使得我 ...

  2. 爬虫python编程与cvi编程_无编程经验学习Python做爬虫,目前遇到困难,请各位指点下?...

    这种规模的爬虫用sqlite3就够了 另外如果你要全天运转 推荐写成scrapy框架的形式 下面推荐一下我写的 如何从零开始写python爬虫 有系列文章了,可以看一下专栏 ------------- ...

  3. python人工智能方向怎么学_人工智能方向需要学习python或是深度学习呢?

    要回答这个问题,首先,我们先了解一下什么是Python和深度学习,各用于什么领域?了解了这两个问题,对于人工智能方向是需要学什么?先学什么?都会有一台清晰的答案. 一.Python Python是一种 ...

  4. python如何学的扎实_如何系统的学习python?

    Google的人机大战,人们一夜之间都知道了AlphaGo,而由此也使得Python成为了人工智能开发中的热门语言,于是越来越多的人开始学习Python,甚至连幼儿园.小学都将Python纳入了学习课 ...

  5. python需要变量命名规则_和孩子一起学习python之变量命名规则

    变量命名规则 下面是关于变量名(也称为标识符)的一些规则 必须以一个字母或一个下划线字符开头.后面可以使用一个字母.数字或下划线字符的序列,长度不限. 字母可以是大写或小写,大小写是不同的.也就是说, ...

  6. 【爬虫】selenium+webdrive抓取淘宝商品评价

    [爬虫]selenium+webdrive抓取淘宝商品评价 爬虫小白入门 (声明:本人只是处于突如其来的兴趣学习一点点,水平实在不高,但在这个过程中也或多或少地解决了一些问题,所以对同为小白的朋友们或 ...

  7. python后端开发学路线_【后端开发】Python要学哪些内容?Python程序员学习路线图...

    很多零基础入门学习python不知道学习什么?也不知道Python要学哪些内容?下ki4网为您总结一下Python程序员学习路线图. python的应用范围是很广泛的,例如一些网络的爬虫,和web的开 ...

  8. 如何零基础学习python语言_零基础如何学习Python编程

    Python是一门简单优雅的计算机程序设计语言,相比于C语言.Java语言,Python编程具有以下特点: 1. Python语法简单,代码可读性高,容易入门: 2. Python代码具有一定的规范性 ...

  9. 高中学历python培训靠谱吗_高中学历学完Python就能干人工智能?

    最近Python大热,主要是人工智能的热度,昨天后院活动部介绍了一位女网友为男朋友选择Java还是Python,大量的程序员热议,也有人询问如何学习Python,比如这位网友询问高中学历学习Pytho ...

  10. Python为何如此受欢迎?你真的需要学习Python嘛?学了之后能做些什么?

    Python是一门代码简单.易读易写的编程语言. 近年来,它是一种在 AI 开发中受到关注的编程语言,并且由于有专门用于机器学习的库,因此它已被用作 AI 开发的标准语言.此外由于它简单易懂,因此经常 ...

最新文章

  1. 《java第二次实验》
  2. Science首发奥密克戎突刺蛋白分子水平分析,揭秘2大传染性增强原因,柳叶刀:全球大流行有望3月结束...
  3. jforum oracle报错,JForum安装在Oracle数据库上
  4. native react ssh_React Native踩坑笔记(持续更新中...)
  5. FPGA篇(三)基于FPGA的几种排序算法
  6. nestjs连接远程mysql_Nestjs 链接mysql
  7. 2018.09.14python学习第四天part2
  8. 九、ES6的箭头函数
  9. getContext() , getApplicationContext() , getBaseContext() and “this”的区别
  10. Spring MVC异常处理详解 ExceptionHandler good
  11. PyTorch 入坑六 数据处理模块Dataloader、Dataset、Transforms
  12. 获取高德地图POI数据
  13. Json解析工具类之GsonUtil类
  14. python操作wps表格_python3怎么用pandas读wps表格,pandas python教程
  15. 音乐播放器——SoundManager API介绍
  16. WiFi语音智能家居控制系统(一)
  17. 常用应届生Java开发笔试面试题(更新中)
  18. 几何分布的期望和方差公式推导_学习笔记:几种特殊分布之间的关系
  19. 互联网毒瘤——内容农场
  20. 双目是个词吗_描写眼睛的词语3个字

热门文章

  1. 东华oj系统 52 k倍区间
  2. 如何做好扁平化设计:交互篇(2)
  3. 商场导视系统能为商场运营提供哪些优势?
  4. libjpeg的使用
  5. 怎么用matlab编写quad8算法,MATLAB程序设计教程(8)---MATLAB数值积分与微分
  6. UX设计秘诀之注册表单设计,细节决定成败
  7. PhoneGap简介
  8. 路由器WAN口和LAN口的IP地址的区别
  9. 蓝桥杯100的阶乘约数
  10. 如何实现1-100的阶乘?