首先进行相关的分析

要想爬取相关的信息,必须指导如下信息:

1、访问接口

2、翻页操作

首先进行搜索,得到相关的网址:https://s.taobao.com/search?q=书包&imgfile=&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.50862.201856-taobao-item.1&ie=utf8&initiative_id=tbindexz_20170501

然后进行查看第二页的网址:https://s.taobao.com/search?q=书包&imgfile=&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.50862.201856-taobao-item.1&ie=utf8&initiative_id=tbindexz_20170501&bcoffset=4&ntoffset=4&p4ppushleft=1%2C48&s=44

继续查看第三页的网址:https://s.taobao.com/search?q=书包&imgfile=&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.50862.201856-taobao-item.1&ie=utf8&initiative_id=tbindexz_20170501&bcoffset=4&ntoffset=4&p4ppushleft=1%2C48&s=88

进行仔细的观察就知道其中的奥妙所在

所以我们整个程序的设计结构如下:

1、提交商品搜索请求,循环获取页面

2、对于每个页面,提取商品名称和价格信息

3、将信息输出到屏幕上

主要的函数有

1、爬取网页

def getHTMLText(url):try:r=requests.get(url,timeout=30)r.raise_for_status()r.encoding=r.apparent_encodingreturn r.textexcept:print("")

2、进行信息提取

def parsePage(ilt,html):try:#在爬取下来的网页中进行查找价格plt=re.findall(r'\"view_price\"\:\"[\d\.]*\"',html)#在爬取下来的网页中查找物品tlt=re.findall(r'\"raw_title\"\:\".*?\"',html)for i in range(len(plt)):price=eval(plt[i].split(':')[1])title=eval(tlt[i].split(':')[1])ilt.append([price,title])except:print("")

3、进行输出

def printGoodsList(ilt):tplt = "{:4}\t{:8}\t{:16}"print(tplt.format("序号", "价格", "商品名称"))count = 0for g in ilt:count = count + 1print(tplt.format(count, g[0], g[1]))

4、主函数

def main():goods='书包'depth=2start_url='https://s.taobao.com/search?q='+goodsinfoList=[]for i in range(depth):try:#str函数的作用是将其中的内容转换为字符串url=start_url+'&s='+str(44*i)html=getHTMLText(url)parsePage(infoList , html)except:continueprintGoodsList(infoList)

下面贴出完整的代码

import requests
import re#获取页面函数、
def getHTMLText(url):try:r=requests.get(url,timeout=30)r.raise_for_status()r.encoding=r.apparent_encodingreturn r.textexcept:print("")
#对获取页面进行解析
def parsePage(ilt,html):try:#在爬取下来的网页中进行查找价格plt=re.findall(r'\"view_price\"\:\"[\d\.]*\"',html)#在爬取下来的网页中查找物品tlt=re.findall(r'\"raw_title\"\:\".*?\"',html)for i in range(len(plt)):price=eval(plt[i].split(':')[1])title=eval(tlt[i].split(':')[1])ilt.append([price,title])except:print("")
#进行打印
def printGoodsList(ilt):tplt = "{:4}\t{:8}\t{:16}"print(tplt.format("序号", "价格", "商品名称"))count = 0for g in ilt:count = count + 1print(tplt.format(count, g[0], g[1]))def main():goods='书包'depth=2start_url='https://s.taobao.com/search?q='+goodsinfoList=[]for i in range(depth):try:#str函数的作用是将其中的内容转换为字符串url=start_url+'&s='+str(44*i)html=getHTMLText(url)parsePage(infoList , html)except:continueprintGoodsList(infoList)main()

python爬虫爬取淘宝网页相关推荐

  1. 简单使用Python爬虫爬取淘宝网页商品信息

    最近在学习爬虫,本人还是入门级的小白,自己跟着老师写了一些代码,算是自己的总结,还有一些心得,跟大家分享一下,如果不当,还请各位前辈斧正. 这是代码: # 导入库 import requests im ...

  2. 利用Python爬虫爬取淘宝商品做数据挖掘分析实战篇,超详细教程

    项目内容 本案例选择>> 商品类目:沙发: 数量:共100页  4400个商品: 筛选条件:天猫.销量从高到低.价格500元以上. 项目目的 1. 对商品标题进行文本分析 词云可视化 2. ...

  3. python爬虫 — 爬取淘宝商品信息

    (一)确定需要爬取的信息 在爬取前首先确定需要获取的信息,打开taobao,在搜索框中输入,需要获取的商品的信息,比如ipad,点击搜索 就可以看到许多的ipad,选择其中的一款商品,比如第一个 可以 ...

  4. python爬虫爬取淘宝,罗兰电钢琴和雅马哈电钢琴(参考崔大)

    淘宝网上有很多商品,这些商品的信息就是一个很不错的数据来源,于是我参考资料后依葫芦画瓢弄了一个爬虫程序来爬一爬梦寐以求的电钢琴. 声明一下:电钢琴和电子琴是两种不同的琴,我在正则表达式里面设置了只要含 ...

  5. python爬虫爬取淘宝商品并保存至mongodb数据库

    使用工具介绍 python3.8 selenium(请确保你已经成功安装了谷歌驱动chromedriver) mongodb数据库 mongo-compass 谷歌浏览器 分析请求链接 打开淘宝首页的 ...

  6. python爬虫 爬取淘宝搜索页面商品信息数据

    主要使用的库: requests:爬虫请求并获取源码 re:使用正则表达式提取数据 json:使用JSON提取数据 pandas:使用pandans存储数据 以下是源代码: #!coding=utf- ...

  7. Python爬虫爬取淘宝、天猫某商品页面相关信息实例

    一.爬取天猫店铺的相关信息 URL="https://detail.tmall.com/item.htm?spm=a230r.1.14.8.4a1a115fb1rHn5&id=617 ...

  8. 使用python爬虫——爬取淘宝图片和知乎内容

    本文主要内容: 目标:使用python爬取淘宝图片:使用python的一个开源框架pyspider(非常好用,一个国人写的)爬取知乎上的每个问题,及这个问题下的所有评论 最简单的爬虫--如下pytho ...

  9. 网络爬虫爬取淘宝页面商品信息

    网络爬虫爬取淘宝页面商品信息 最近在MOOC上看嵩老师的网络爬虫课程,按照老师的写法并不能进行爬取,遇到了一个问题,就是关于如何"绕开"淘宝登录界面,正确的爬取相关信息.通过百度找 ...

最新文章

  1. Javascript调试技巧整理
  2. 谈谈对Spring IOC的理解
  3. 手持发光棒的结构解析
  4. 被陆奇看好的项目都好奇葩
  5. Struts2第十一篇【简单UI标签、数据回显】
  6. 【343天】每日项目总结系列081(2018.01.14)
  7. C++中getline()和cin()同时使用时的注意事项
  8. Opencv 图片 读取,显示,保存基本操作
  9. 漫画:趣解鸿蒙 OS 如何实现跨平台?
  10. mysql reset_mysql的reset命令
  11. linux mysql5.6数据目录,Linux下Mysql5.6 二进制安装过程
  12. 全网首发:LINUX右键新建时的模板问题
  13. STM32—建立工程模板
  14. 记一次学习爬取豆瓣数据于Excel表的爬虫
  15. vue3监听网页窗口关闭
  16. 新产品、新特性、新生态丨一文回顾openGauss峰会云和恩墨分论坛150分钟的精彩...
  17. 高新技术企业认定,知识产权核查篇
  18. #Matlab# Yalmip CPLEX使用
  19. 马云能否对反向收购雅虎说不?
  20. 如何从VirtualBox中的Ubuntu虚拟机访问主机上的文件夹

热门文章

  1. HEALTH_WARN 1 filesystem is degraded,一直在rejoin状态
  2. activiti学习之回退实现
  3. 无涯教程: Laravel 8 - Excel和CSV介绍
  4. 抖音整人/撩小姐姐代码(vbs脚本)
  5. PAT-2018 L1-049. 天梯赛座位分配
  6. Zedboard(一)开发环境Vivado
  7. 输入网络密码来进入共享计算机,Win7系统与其他电脑共享文件提示输入网络密码如何解决...
  8. 经典时尚风格PS调色动作
  9. iol植入手术过程_有晶体眼IOL植入技术
  10. uniapp 微信小程序 保存图片到本地