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获得时间的实例说明
Mar 25 Python
详解python3百度指数抓取实例
Dec 12 Python
python 多维切片之冒号和三个点的用法介绍
Apr 19 Python
python学习基础之循环import及import过程
Apr 22 Python
numpy.linspace 生成等差数组的方法
Jul 02 Python
Python3实现的判断回文链表算法示例
Mar 08 Python
django Admin文档生成器使用详解
Jul 22 Python
Django 对象关系映射(ORM)源码详解
Aug 06 Python
简单介绍python封装的基本知识
Aug 10 Python
简单了解python数组的基本操作
Nov 26 Python
Django之腾讯云短信的实现
Jun 12 Python
Python入门之基础语法详解
May 11 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
基于header的一些常用指令详解
2013/06/06 PHP
php从文件夹随机读取文件的方法
2015/06/01 PHP
PHP设计模式之简单投诉页面实例
2016/02/24 PHP
thinkPHP简单调用函数与类库的方法
2017/03/15 PHP
PHP中时间加减函数strtotime用法分析
2017/04/26 PHP
php实现文件预览功能
2017/05/23 PHP
YII框架页面缓存操作示例
2019/04/29 PHP
javascript 写类方式之二
2009/07/05 Javascript
javascript面向对象的方式实现的弹出层效果代码
2010/01/28 Javascript
用JSON做数据传输格式中的一些问题总结
2011/12/21 Javascript
JQuery插件Style定制化方法的分析与比较
2012/05/03 Javascript
jQuery中$.fn的用法示例介绍
2013/11/05 Javascript
js将json格式的对象拼接成复杂的url参数方法
2016/05/25 Javascript
Websocket协议详解及简单实例代码
2016/12/12 Javascript
javascript实现Java中的Map对象功能的实例详解
2017/08/21 Javascript
node内置调试方法总结
2018/02/22 Javascript
详解如何在Vue里建立长按指令
2018/08/20 Javascript
vue中多路由表头吸顶实现的几种布局方式
2019/04/12 Javascript
简单了解vue.js数组的常用操作
2019/06/17 Javascript
关于layui 实现点击按钮添加一行(方法渲染创建的table)
2019/09/29 Javascript
Vue的transition-group与Virtual Dom Diff算法的使用
2019/12/09 Javascript
[01:57]DOTA2上海特锦赛小组赛解说单车采访花絮
2016/02/27 DOTA
python解析文件示例
2014/01/23 Python
python递归查询菜单并转换成json实例
2017/03/27 Python
十分钟利用Python制作属于你自己的个性logo
2018/05/07 Python
python跳出双层for循环的解决方法
2019/06/24 Python
python日志模块logbook使用方法
2019/09/19 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
2020/06/24 Python
Python enumerate() 函数如何实现索引功能
2020/06/29 Python
小学生班会演讲稿
2014/01/09 职场文书
自主招生教师推荐信
2014/05/10 职场文书
公司授权委托书范文
2014/08/02 职场文书
2016年“世界环境日”校园广播稿
2015/12/18 职场文书
HR在给员工开具离职证明时,需要注意哪些问题?
2019/07/03 职场文书
开发者首先否认《遗弃》被取消的传言
2022/04/11 其他游戏
Hive日期格式转换方法总结
2022/06/25 数据库