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中的二维数组的操作方法
May 02 Python
浅谈python为什么不需要三目运算符和switch
Jun 17 Python
详解 Python中LEGB和闭包及装饰器
Aug 03 Python
Python实现定时备份mysql数据库并把备份数据库邮件发送
Mar 08 Python
flask框架视图函数用法示例
Jul 19 Python
python高阶爬虫实战分析
Jul 29 Python
Python绘制并保存指定大小图像的方法
Jan 10 Python
python 实现GUI(图形用户界面)编程详解
Jul 17 Python
Python 导入文件过程图解
Oct 15 Python
python 实现矩阵填充0的例子
Nov 29 Python
如何基于python实现不邻接植花
May 01 Python
关于matplotlib-legend 位置属性 loc 使用说明
May 16 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
Terran剧情介绍
2020/03/14 星际争霸
PHP连接数据库实现注册页面的增删改查操作
2016/03/27 PHP
php多文件打包下载的实例代码
2017/07/12 PHP
解决Laravel 使用insert插入数据,字段created_at为0000的问题
2019/10/11 PHP
Javascript客户端将指定区域导出到Word、Excel的代码
2008/10/22 Javascript
js 表格隔行颜色
2009/12/02 Javascript
Jquery中的CheckBox、RadioButton、DropDownList的取值赋值实现代码
2011/10/12 Javascript
js变量以及其作用域详解
2020/07/18 Javascript
浅析return false的正确使用
2013/11/04 Javascript
推荐一个自己用的封装好的javascript插件
2015/01/29 Javascript
js实现的简洁网页滑动tab菜单效果代码
2015/08/24 Javascript
第一次接触神奇的Bootstrap导航条
2016/08/09 Javascript
解决vue 路由变化页面数据不刷新的问题
2018/03/13 Javascript
uni-app实现点赞评论功能
2019/11/25 Javascript
微信小程序静默登录的实现代码
2020/01/08 Javascript
vue中watch的用法汇总
2020/12/28 Vue.js
Django的URLconf中使用缺省视图参数的方法
2015/07/18 Python
浅谈Python实现贪心算法与活动安排问题
2017/12/19 Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
2017/12/20 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
2018/12/20 Python
学生信息管理系统Python面向对象版
2019/01/30 Python
python实现月食效果实例代码
2019/06/18 Python
python多线程分块读取文件
2019/08/29 Python
python实现两个文件夹的同步
2019/08/29 Python
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
2019/09/29 Python
python重要函数eval多种用法解析
2020/01/14 Python
Python实现ATM系统
2020/02/17 Python
基于python纯函数实现井字棋游戏
2020/05/27 Python
将不规则的Python多维数组拉平到一维的方法实现
2021/01/11 Python
德购商城:德国进口直邮商城
2017/06/13 全球购物
小区门卫值班制度
2014/01/24 职场文书
工作推荐信范文
2014/05/10 职场文书
公司节能减排方案
2014/05/16 职场文书
党章学习心得体会2016
2016/01/14 职场文书
python编程学习使用管道Pipe编写优化代码
2021/11/20 Python
Python实现猜拳与猜数字游戏的方法详解
2022/04/06 Python