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生成器(Generator)详解
Apr 13 Python
使用Python发送邮件附件以定时备份MySQL的教程
Apr 25 Python
Python变量和字符串详解
Apr 29 Python
500行Python代码打造刷脸考勤系统
Jun 03 Python
python飞机大战pygame游戏框架搭建操作详解
Dec 17 Python
python 操作hive pyhs2方式
Dec 21 Python
python保存log日志,实现用log日志画图
Dec 24 Python
Python PyPDF2模块安装使用解析
Jan 19 Python
如何基于Python实现数字类型转换
Feb 07 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
Apr 10 Python
python对一个数向上取整的实例方法
Jun 18 Python
python tkinter实现下载进度条及抖音视频去水印原理
Feb 07 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
咖啡常见的种类
2021/03/03 新手入门
PHP开发入门教程之面向对象
2006/12/05 PHP
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
2013/07/03 PHP
PHP实现的随机IP函数【国内IP段】
2016/07/20 PHP
laravel 创建命令行命令的图文教程
2019/10/23 PHP
jquery关于图形报表的运用实现代码
2011/01/06 Javascript
jquery动画3.创建一个带遮罩效果的图片走廊
2012/08/24 Javascript
javascript实现textarea中tab键的缩排处理方法
2015/06/26 Javascript
深入解析JavaScript中的数字对象与字符串对象
2015/10/21 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
2016/02/03 Javascript
浅析jquery如何判断滚动条滚到页面底部并执行事件
2016/04/29 Javascript
在localStorage中存储对象数组并读取的方法
2016/09/24 Javascript
Angular2整合其他插件的方法
2018/01/20 Javascript
Bootstrap实现的表格合并单元格示例
2018/02/06 Javascript
在微信小程序中保存网络图片
2019/02/12 Javascript
基于JS实现前端压缩上传图片的实例代码
2019/05/14 Javascript
node实现爬虫的几种简易方式
2019/08/22 Javascript
nodejs实现的http、https 请求封装操作示例
2020/02/06 NodeJs
vue使用nprogress加载路由进度条的方法
2020/06/04 Javascript
通过vue.extend实现消息提示弹框的方法记录
2021/01/07 Vue.js
Python类方法__init__和__del__构造、析构过程分析
2015/03/06 Python
Python中函数的参数传递与可变长参数介绍
2015/06/30 Python
Windows平台Python连接sqlite3数据库的方法分析
2017/07/12 Python
Python字典中的键映射多个值的方法(列表或者集合)
2018/10/17 Python
对pyqt5之menu和action的使用详解
2019/06/20 Python
python之信息加密题目详解
2019/06/26 Python
Python中PyQt5/PySide2的按钮控件使用实例
2019/08/17 Python
Python JSON常用编解码方法代码实例
2020/09/05 Python
利用CSS3的特性改变文本选中时的颜色
2013/09/11 HTML / CSS
一款纯css3实现的漂亮的404页面的实例教程
2014/11/27 HTML / CSS
怎样创建、运行java程序
2014/08/01 面试题
当我正在为表建立索引的时候,SQL Server 会禁止对表的访问吗
2014/04/28 面试题
大学生个人求职信范文
2013/09/21 职场文书
论文答谢词
2015/01/20 职场文书
新入职员工工作总结
2015/10/15 职场文书