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中__call__用法实例
Aug 29 Python
用map函数来完成Python并行任务的简单示例
Apr 02 Python
Python实现给qq邮箱发送邮件的方法
May 28 Python
Python实现短网址ShortUrl的Hash运算实例讲解
Aug 10 Python
python+selenium实现163邮箱自动登陆的方法
Dec 31 Python
Python 25行代码实现的RSA算法详解
Apr 10 Python
Python 写入训练日志文件并控制台输出解析
Aug 13 Python
Python 通过截图匹配原图中的位置(opencv)实例
Aug 27 Python
解决python 读取excel时 日期变成数字并加.0的问题
Oct 08 Python
python opencv图片编码为h264文件的实例
Dec 12 Python
PyTorch中permute的用法详解
Dec 30 Python
详解利用python识别图片中的条码(pyzbar)及条码图片矫正和增强
Nov 17 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制作静态网站的模板框架(一)
2006/10/09 PHP
PHP获取MAC地址的函数代码
2011/09/11 PHP
深入PHP FTP类的详解
2013/06/13 PHP
PHP实现的堆排序算法详解
2017/08/17 PHP
JS类库Bindows1.3中的内存释放方式分析
2007/03/08 Javascript
JavaScript入门教程(12) js对象化编程
2009/01/31 Javascript
JavaScript中的style.display属性操作
2013/03/27 Javascript
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
2013/04/15 Javascript
基于jQuery实现的文字按钮表单特效整理
2014/12/07 Javascript
js判断浏览器版本以及浏览器内核的方法
2015/01/20 Javascript
JavaScript中诡异的delete操作符
2015/03/12 Javascript
jQuery控制元素显示、隐藏、切换、滑动的方法总结
2015/04/16 Javascript
SublimeText自带格式化代码功能之reindent
2015/12/27 Javascript
vue.js事件处理器是什么
2017/03/20 Javascript
Angular获取手机验证码实现移动端登录注册功能
2017/05/17 Javascript
微信小程序图片选择区域裁剪实现方法
2017/12/02 Javascript
JS计算输出100元钱买100只鸡问题的解决方法
2018/01/04 Javascript
angularjs 的数据绑定实现原理
2018/07/02 Javascript
写一个Vue Popup组件
2019/02/25 Javascript
微信小程序实现上传word、txt、Excel、PPT等文件功能
2019/05/23 Javascript
微信小程序 scroll-view 实现锚点跳转功能
2019/12/12 Javascript
JavaScript中while循环的基础使用教程
2020/08/11 Javascript
Python判断操作系统类型代码分享
2014/11/22 Python
python SSH模块登录,远程机执行shell命令实例解析
2018/01/12 Python
Sanic框架基于类的视图用法示例
2018/07/18 Python
使用python实现男神女神颜值打分系统(推荐)
2019/10/31 Python
Python 爬虫性能相关总结
2020/08/03 Python
django数据模型中null和blank的区别说明
2020/09/02 Python
2014年教师节活动总结
2014/08/29 职场文书
党支部三会一课计划
2014/09/24 职场文书
英语导游词
2015/02/13 职场文书
个人工作违纪检讨书
2015/05/05 职场文书
春晚观后感
2015/06/11 职场文书
外科护士长工作总结
2015/08/12 职场文书
看看如何用Python绘制小米新版天价logo
2021/04/20 Python
golang goroutine顺序输出方式
2021/04/29 Golang