python3爬取淘宝信息代码分析


Posted in Python onFebruary 10, 2018
# encoding:utf-8
import re # 使用正则 匹配想要的数据
import requests # 使用requests得到网页源码

这个函数是用来得到源码

# 得到主函数传入的链接
def getHtmlText(url):
  try: # 异常处理
    # 得到你传入的URL链接 设置超时时间3秒
    r = requests.get(url, timeout=3)
    # 判断它的http状态码
    r.raise_for_status()
    # 设置它的编码 encoding是设置它的头部编码 apparent_encoding是从返回网页中分析它的编码格式
    r.encoding = r.apparent_encoding
    # 返回源代码
    return r.text
  except: # 发生异常返回空
    return ''

这个函数使用来解析你的源代码 获取你想要的数据

# 解析你的网页信息
def parsePage(ilt, html):
  # 异常处理
  try:
    # 找到书包的价格
    plt = re.findall(r'\"view_price\"\:\"[\d\.]*\"', html)
    # 找到书包的名称
    tlt = re.findall(r'\"raw_title\"\:\".*?\"', html)
    # 找到书包的地址
    add = re.findall(r'\"item_loc\"\:\".*?\"', html)
    # 找到书包的图片链接
    img = re.findall(r'\"pic_url\"\:\".*?\"', html)
    # 得到这个内容放入主函数中的列表
    for i in range(len(plt)):
      price = eval(plt[i].split(':')[1])
      title = eval(tlt[i].split(':')[1])
      address = eval(add[i].split(':')[1])
      imgs = eval(img[i].split(':')[1])  
      ilt.append([price, title, address, imgs])
  except: # 放生异常输出空字符串
    print('')
# 得到主函数传入的列表
def printGoodsList(ilt):
  # 每个列之间用tplt的放是隔开
  tplt = '{:4}\t{:8}\t{:16}\t{:32}'
  # 这个是整个的标题
  print(tplt.format('序号', '价格', '商品名称','地址', '图片地址'))
  count = 0 # 统计有多少的序号
  for g in ilt:
    count = count + 1 # 循环一遍加一
    print(tplt.format(count, g[0], g[1], g[2]), g[3]) # 输出你得到的数据
# 定义主函数 main
def main():
  goods = '书包' # 你要搜索的东西
  depth = 2 # 你想要得到几页的东西
  start_url = 'https://s.taobao.com/search?q=' + goods # 你搜索的网址加上你的搜索东西
  infoList = [] # 自定义的空列表用来存放你的到的数据
  for i in range(depth): # 循环你的页数
    try: # 异常处理
      url = start_url + '&s' + str(44 * i) # 得到你的网址
      html = getHtmlText(url) # 得到url传入到你要得到url的函数中
      parsePage(infoList, html) # 得到你的html源码 放入解析的网页中
    except: # 发生异常跳过
      continue
  # 把列表中的数据放入解析的函数中
  printGoodsList(infoList)
# 代码调试片段
if __name__ == '__main__':
  main() # 调用主函数

以上就是经过小编测试过的用python3爬取淘宝信息的代码,大家测试后如果还有任何不明白的地方可以在下方的留言区讨论。

Python 相关文章推荐
Python httplib模块使用实例
Apr 11 Python
python去除所有html标签的方法
May 05 Python
python中函数默认值使用注意点详解
Jun 01 Python
Python中支持向量机SVM的使用方法详解
Dec 26 Python
在cmd命令行里进入和退出Python程序的方法
May 12 Python
Python不使用int()函数把字符串转换为数字的方法
Jul 09 Python
numpy添加新的维度:newaxis的方法
Aug 02 Python
python飞机大战 pygame游戏创建快速入门详解
Dec 17 Python
Python 实现Serial 与STM32J进行串口通讯
Dec 18 Python
python里的单引号和双引号的有什么作用
Jun 17 Python
教你用Python matplotlib库制作简单的动画
Jun 11 Python
python实现层次聚类的方法
Nov 01 Python
Python中property属性实例解析
Feb 10 #Python
Java编程迭代地删除文件夹及其下的所有文件实例
Feb 10 #Python
Python中协程用法代码详解
Feb 10 #Python
Python实现简单生成验证码功能【基于random模块】
Feb 10 #Python
Django中Forms的使用代码解析
Feb 10 #Python
Python中列表与元组的乘法操作示例
Feb 10 #Python
Python程序运行原理图文解析
Feb 10 #Python
You might like
PHP Session变量不能传送到下一页的解决方法
2009/11/27 PHP
基于php的微信公众平台开发入门实例
2015/04/15 PHP
分享50个提高PHP执行效率的技巧
2015/12/26 PHP
php模拟post提交请求调用接口示例解析
2020/08/07 PHP
告诉大家什么是JSON
2008/06/10 Javascript
JavaScript 对话框和状态栏使用说明
2009/10/25 Javascript
extjs 为某个事件设置拦截器
2010/01/15 Javascript
jquery实现带复选框的表格行选中删除时高亮显示
2013/08/01 Javascript
理解 JavaScript Scoping & Hoisting(二)
2015/11/18 Javascript
在localStorage中存储对象数组并读取的方法
2016/09/24 Javascript
vue vue-Router默认hash模式修改为history需要做的修改详解
2018/09/13 Javascript
GOJS+VUE实现流程图效果
2018/12/01 Javascript
Nuxt.js实现一个SSR的前端博客的示例代码
2019/09/06 Javascript
使用Layer组件弹出多个对话框(非嵌套)与关闭及刷新的例子
2019/09/25 Javascript
[37:03]完美世界DOTA2联赛PWL S3 INK ICE vs GXR 第二场 12.16
2020/12/18 DOTA
Python Socket编程入门教程
2014/07/11 Python
Python的另外几种语言实现
2015/01/29 Python
Python对象类型及其运算方法(详解)
2017/07/05 Python
Python 由字符串函数名得到对应的函数(实例讲解)
2017/08/10 Python
通过python实现随机交换礼物程序详解
2019/07/10 Python
Django的用户模块与权限系统的示例代码
2019/07/24 Python
HTML5地理定位_动力节点Java学院整理
2017/07/12 HTML / CSS
SportsDirect.com马来西亚:英国第一体育零售商
2018/11/21 全球购物
英国最大的宠物商店:Pets at Home
2019/04/17 全球购物
单位消防安全制度
2014/01/12 职场文书
会计工作心得体会
2014/01/13 职场文书
餐饮采购员岗位职责
2014/03/15 职场文书
旺仔牛奶广告词
2014/03/20 职场文书
4s店市场专员岗位职责
2014/04/09 职场文书
导航工程专业自荐信
2014/09/02 职场文书
浅谈JS和Nodejs中的事件驱动
2021/05/05 NodeJs
MySQL 表空间碎片的概念及相关问题解决
2021/05/07 MySQL
解析mybatis-plus中的resultMap简单使用
2021/11/23 Java/Android
JVM的类加载器和双亲委派模式你了解吗
2022/03/13 Java/Android
SQL Server内存机制浅探
2022/04/06 SQL Server
单机多实例部署 MySQL8.0.20
2022/05/15 MySQL