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字符串替换示例
Apr 24 Python
Python使用time模块实现指定时间触发器示例
May 18 Python
Python安装图文教程 Pycharm安装教程
Mar 27 Python
python获取程序执行文件路径的方法(推荐)
Apr 26 Python
对Python3中bytes和HexStr之间的转换详解
Dec 04 Python
django框架model orM使用字典作为参数,保存数据的方法分析
Jun 24 Python
Python参数类型以及常见的坑详解
Jul 08 Python
Python简易版停车管理系统
Aug 12 Python
Python获取当前脚本文件夹(Script)的绝对路径方法代码
Aug 27 Python
Django异步任务线程池实现原理
Dec 17 Python
Python定义函数实现累计求和操作
May 03 Python
Python之字典对象的几种创建方法
Sep 30 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
DedeCMS 核心类TypeLink.class.php摘要笔记
2010/04/07 PHP
php判断目录存在的简单方法
2019/09/26 PHP
JavaScript中valueOf函数与toString方法深入理解
2012/12/02 Javascript
Jquery动态更改一张位图的src与Attr的使用
2013/07/31 Javascript
通过length属性判断jquery对象是否存在
2013/10/18 Javascript
javascript Array.prototype.slice的使用示例
2013/11/14 Javascript
jquery实现邮箱自动补全功能示例分享
2014/02/17 Javascript
js实现内容显示并使用json传输数据
2016/03/16 Javascript
JavaScript中split与join函数的进阶使用技巧
2016/05/03 Javascript
原生JS实现圆环拖拽效果
2017/04/07 Javascript
JavaScript纯色二维码变成彩色二维码
2020/07/23 Javascript
详解JavaScript的BUG和错误
2018/05/07 Javascript
讲解vue-router之命名路由和命名视图
2018/05/28 Javascript
scrapyd schedule.json setting 传入多个值问题
2019/08/07 Javascript
vue.js路由mode配置之去掉url上默认的#方法
2019/11/01 Javascript
JavaScript进阶(一)变量声明提升实例分析
2020/05/09 Javascript
[43:58]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第二局
2016/02/27 DOTA
python socket网络编程步骤详解(socket套接字使用)
2013/12/06 Python
Windows下安装python MySQLdb遇到的问题及解决方法
2017/03/16 Python
python中OrderedDict的使用方法详解
2017/05/05 Python
详解Python 模拟实现生产者消费者模式的实例
2017/08/10 Python
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
2018/02/23 Python
pandas 对每一列数据进行标准化的方法
2018/06/09 Python
对tensorflow 的模型保存和调用实例讲解
2018/07/28 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
2019/04/25 Python
Python分布式进程中你会遇到的问题解析
2019/05/28 Python
在python中,使用scatter绘制散点图的实例
2019/07/03 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
2020/03/05 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
2020/04/13 Python
python属于软件吗
2020/06/18 Python
大学本科毕业生的自我鉴定范文
2013/11/19 职场文书
送货司机岗位职责
2013/12/11 职场文书
《长城和运河》教学反思
2014/04/14 职场文书
上班迟到检讨书
2014/09/15 职场文书
父亲节活动总结
2015/02/12 职场文书
护理专业毕业自我鉴定
2019/08/12 职场文书