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中的Django框架中prefetch_related()函数对数据库查询的优化
Apr 01 Python
仅利用30行Python代码来展示X算法
Apr 01 Python
python删除指定类型(或非指定)的文件实例详解
Jul 06 Python
Python 装饰器深入理解
Mar 16 Python
Python基于scapy实现修改IP发送请求的方法示例
Jul 08 Python
Python决策树和随机森林算法实例详解
Jan 30 Python
解决seaborn在pycharm中绘图不出图的问题
May 24 Python
python实现flappy bird小游戏
Dec 24 Python
Django Rest framework解析器和渲染器详解
Jul 25 Python
django rest framework 自定义返回方式
Jul 12 Python
Python 详解通过Scrapy框架实现爬取CSDN全站热榜标题热词流程
Nov 11 Python
Pyhton爬虫知识之正则表达式详解
Apr 01 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 CLI实现简单的数据库实时监控调度
2009/07/01 PHP
php入门学习知识点七 PHP函数的基本应用
2011/07/14 PHP
比file_get_contents稳定的curl_get_contents分享
2012/01/11 PHP
PHP中数组的分组排序实例
2014/06/01 PHP
Javascript 函数对象的多重身份
2009/06/28 Javascript
JavaScript DOM 学习第五章 表单简介
2010/02/19 Javascript
基于jQuery的公告无限循环滚动实现代码
2012/05/11 Javascript
JS 去除Array中的null值示例代码
2013/11/20 Javascript
简单的JavaScript互斥锁分享
2014/02/02 Javascript
jQuery实现给页面换肤的方法
2015/05/30 Javascript
跟我学习javascript的循环
2015/11/18 Javascript
谈谈jQuery Ajax用法详解
2015/11/27 Javascript
微信小程序 POST请求(网络请求)详解及实例代码
2016/11/16 Javascript
JS实现隔行换色的表格排序
2017/03/27 Javascript
JS中的数组转变成JSON格式字符串的方法
2017/05/09 Javascript
js中apply和Math.max()函数的问题及区别介绍
2018/03/27 Javascript
通过 JS 判断页面是否有滚动条的实现方法
2018/04/05 Javascript
使用js和canvas实现时钟效果
2020/09/08 Javascript
[04:40]2016国际邀请赛中国区预选赛全程TOP10镜头集锦
2016/07/01 DOTA
Python中类型关系和继承关系实例详解
2015/05/25 Python
自动化Nginx服务器的反向代理的配置方法
2015/06/28 Python
python导入模块交叉引用的方法
2019/01/19 Python
python使用time、datetime返回工作日列表实例代码
2019/05/09 Python
django ModelForm修改显示缩略图 imagefield类型的实例
2019/07/28 Python
python 动态调用函数实例解析
2019/10/21 Python
使用tensorflow显示pb模型的所有网络结点方式
2020/01/23 Python
pandas参数设置的实用小技巧
2020/08/23 Python
科尔士百货公司官网:Kohl’s
2016/07/11 全球购物
德国最大的网上足球商店:11teamsports
2019/09/11 全球购物
乔迁宴答谢词
2014/01/21 职场文书
篮球比赛口号
2014/06/10 职场文书
2014企业领导班子四风对照检查材料思想汇报
2014/09/17 职场文书
给医院的感谢信
2015/01/21 职场文书
干部培训简讯
2015/07/20 职场文书
Python还能这么玩之只用30行代码从excel提取个人值班表
2021/06/05 Python
maven依赖的version声明控制方式
2022/01/18 Java/Android