Python网络爬虫与信息提取笔记01-Requests库入门

Python网络爬虫与信息提取笔记02-网络爬虫之“盗亦有道”

Python网络爬虫与信息提取笔记03-Requests库网络爬虫实战(5个实例)

Python网络爬虫与信息提取笔记04-Beautiful Soup库入门

Python网络爬虫与信息提取笔记05-信息组织与提取方法

Python网络爬虫与信息提取笔记06-实例1:中国大学排名爬虫

Python网络爬虫与信息提取笔记07-Re(正则表达式)库入门


本文索引:

  1. “淘宝商品信息定向爬虫”实例介绍
  2. “淘宝商品信息定向爬虫”实例编写

1、“淘宝商品信息定向爬虫”实例介绍

淘宝大家都不陌生,官网在这:https://www.taobao.com/,我们今天要说的不是人直接去搜素商品,而是让一段代码自动搜索:

功能描述:

目标:获取淘宝搜索页面的信息,提取其中的商品名称和价格。

理解:处理淘宝的搜索接口

翻页的处理

技术路线:requests库和re库

我们先来看一下淘宝的robots协议,https://www.taobao.com/robots.txt,我们可以看到,淘宝是不允许爬虫来爬取它的搜索页面的

那怎么办?难道我们就放弃这个实例嘛?其实我们之前说过,大部分爬虫被限制的主要原因是因为它不加限制的高频率爬取网站界面,如果完全放任,会对服务器造成很大的负担,但如果我们访问请求的频率与人类似,不会对网站造成太大压力,是可以用于研究和教学探索的,所以我们会接着完成这个实例。

注意:网络爬取有风险,请再次阅读Python网络爬虫与信息提取笔记02-网络爬虫之“盗亦有道”,也个大家一个建议,在写网络爬虫的时候,养成一个好习惯,先查看网站对网络爬虫的限制再决定,本篇只用于讲解原理,请各位不要用学到的东西肆无忌惮的在网络上爬取,造成后果与本人无关。

那么我们接着讲解这个实例的原理:

程序的结构设计:

步骤1:提交商品搜索请求,循环获取页面

步骤2:对于每个页面,提取商品名称和价格信息

步骤3:将信息输出到屏幕上

2、“淘宝商品信息定向爬虫”实例编写

我们分布讨论这个实例代码的编写步骤:

1、导入相关库requests和re

import requests
improt re

2、定义三个主要功能函数和主函数:

# 获得页面的函数
def getHTMLText(url):print("")# 对获得页面进行解析,参数为结果的列表类型和相关html页面信息
def parsePage(ilt,html):print("")# 输出商品信息到屏幕
def printGoodsList(ilt):print("")def main():goods = '书包'depth = 2start_url = 'https://s.taobao.com/search?q=' + goodsinfoList = []   # 输出结果保存for i in range(depth):try:url = start_url + '&s=' + str(48*i)html = getHTMLText(url)parsePage(infoList,html)except:continueprintGoodsList(infoList)main()

3、接下里具体实现三个主要函数的功能编写

第一个getHTMLText(url)函数:

def getHTMLText(url):try:r = requests.get(url,timeout = 30)r.raise_status()r.encoding = r.apparent_encodingreturn r.textexcept:return ""

第二个parsePage(ilt,html)函数

首先,我们来查看下淘宝搜索书包页面的源代码:

可以看出来,商品的每一个名称和价格分别是用view_title和raw_price两个标签来组织的,

def parsePage(ilt,html):try:plt = re.findall(r'\"view_price\"\:\"{\d.}*\"',html)tlt = re.findall(r'\"raw_title\"\:\".*?\"',html)for i in range(plt):price = eval(plt[i].split(':')[1])title = eval(tlt[1].split(':')[1])ilt.append([price,title])except:print("")print("")

第三个printGoodsList()函数,设置输出排列格式,

def printGoodsList(ilt):tplt = "{:4}\t{:8}\t{:16}"     # 制表格式print(tplt.format("序号","价格","商品名称"))   # 输出表头count = 0for g in ilt:count = count + 1print(tplt.format(count,g[0],g[1]))

到这里,所有的完整代码已经写完了,但是其实,到目前为止,淘宝已经不允许爬取用户商品界面了,所以,这个例子算是失败了,但这只是对于不循序网络爬虫的网站,我们还可以用别的允许的网站测试,但也把这个完整代码贴出来,附运行结果:

import re
import requestsdef getHTMLText(url):try:r = requests.get(url,timeout = 30)r.raise_status()r.encoding = r.apparent_encodingreturn r.textexcept:return ""def parsePage(ilt,html):try:plt = re.findall(r'\"view_price\"\:\"{\d.}*\"',html)tlt = re.findall(r'\"raw_title\"\:\".*?\"',html)for i in range(plt):price = eval(plt[i].split(':')[1])title = eval(tlt[1].split(':')[1])ilt.append([price,title])except:print("")print("")def printGoodsList(ilt):tplt = "{:4}\t{:8}\t{:16}"print(tplt.format("序号","价格","商品名称"))count = 0for g in ilt:count = count + 1print(tplt.format(count,g[0],g[1]))def main():goods = '书包'depth = 2start_url = 'https://s.taobao.com/search?q=' + goodsinfoList = []   # 输出结果保存for i in range(depth):try:url = start_url + '&s=' + str(48*i)html = getHTMLText(url)parsePage(infoList,html)except:continueprintGoodsList(infoList)main()

运行结果:

这段代码仍旧有学习价值,这篇文章那个就看看就OK了,不要想着研究绕过淘宝的反爬虫机制,这样可能会造成非法后果,请小伙伴注意,一起加油吧。

Python网络爬虫与信息提取笔记08-实例2:淘宝商品比价定向爬虫相关推荐

  1. 网络爬虫与信息提取--正则表达式---淘宝商品比价定向爬虫

    淘宝商品比价定向爬虫 本实例爬取时间2019.9.11 由于淘宝代码的不断完善更新,本爬取代码已经不能爬取出商品信息内容 原因:结果为空:打印html看到,需要登录淘宝 在网上找解决方法,可以复制co ...

  2. 淘宝商品比价定向爬虫-Python网络爬虫与信息提取-北京理工大学嵩天教授

    功能描述 目标:获取淘宝搜索页面的信息,提取其中的商品名称和价格: 理解:淘宝的搜索接口.翻页的处理: 以课程中的搜索书包为例,对应的url如下: (1)起始页: (2)第二页:最后的s=44: (3 ...

  3. python爬虫笔记(六)网络爬虫之实战(1)——淘宝商品比价定向爬虫(解决淘宝爬虫限制:使用cookies)...

    1.  淘宝商品信息定向爬虫 链接: https://www.taobao.com/ 2. 实例编写 2.1 整体框架 # -*- coding: utf-8 -*-import requests i ...

  4. Python爬虫实例之淘宝商品比价定向爬取!爬虫还是很有意思的!

    这次就模仿之前做的总结进行初次尝试 目标:获取淘宝搜索页面的信息,提取其中的商品名称和价格 理解:获取淘宝的搜索接口淘宝页面的翻页处理 技术路线:requests--re 准备工作 获取淘宝搜索商品的 ...

  5. 爬虫(6)—— 淘宝商品比价定向爬虫

    该实例来源于中国大学慕课,视频教学链接如下: 传送门 目标: 获取淘宝搜索页面的额信息,提取其中的商品名称和价格 关键点: 淘宝的搜索接口 翻页的处理 从以上图片中可以看出,搜索接口的形式是: htt ...

  6. 基于python的购物比价毕设_【Python爬虫】淘宝商品比价定向爬虫

    #CrowTaobaoPrice.py importrequestsimportredef getHTMLText(url):#获得网页信息 headers = {'User-Agent': 'Moz ...

  7. 优化淘宝商品比价定向爬虫--爬虫的浏览器伪装

    目录 一. 原代码问题 二.淘宝Robots协议 三.User-Agent 四.查找headers和cookie 五. 完整代码 一. 原代码问题 爬取不到任何内容处理 原因:由于淘宝的设置,虽然可以 ...

  8. 淘宝商品价格定向爬虫

    淘宝商品价格定向爬虫 (1)  目标:获取淘宝搜索页面的信息,提取其中的商品名称和价格 要实现淘宝的搜索接口,翻页的处理.主要采用了Requests, bs4库,re库 (2)程序的结构设计: 步骤1 ...

  9. python爬虫学习笔记(三)——淘宝商品比价实战(爬取成功)

    2020年最新淘宝商品比价定向爬取 功能描述 目标:获取淘宝搜索页面的信息,提取其中的商品名称和价格. 理解:淘宝的搜索接口 翻页的处理 技术路线:requests­          re 程序的结 ...

最新文章

  1. HDOJ(HDU) 1977 Consecutive sum II(推导、、)
  2. Openstack介绍
  3. wordpress去掉category怎么操作让url更简洁友好
  4. FastDFS 安装
  5. openshift命令_使用命令行工具创建WildFly OpenShift应用程序
  6. java scanner类 构造器_java – 不能使用Scanner类,构造函数未定义,方法未定义
  7. 操作系统作业3 xv6 CPU alarm
  8. unity运行环境_LG电子与Unity合作仿真软件 加速研发更安全的自动驾驶汽车系统...
  9. Dapper:The member of type SeoTKD cannot be used as a parameter Value
  10. 3801.最佳连续子数组-AcWing题库
  11. 基于51单片机的教室人数检测
  12. 使用PCA可视化数据
  13. html默认office打开如何更改,怎么设置office默认打开方式,修改office的默认打开方式...
  14. dilated convolution
  15. Unity的一些特效和粒子特效插件
  16. JAVASE之多线程初识
  17. 主键的特点和三种创建方式
  18. S.M.A.R.T 参数详解及推荐指标
  19. 高等代数_证明_幂等矩阵一定能够相似对角化
  20. ESP8266开发板

热门文章

  1. Add support for G722.1
  2. esp32cam 服务端远程视频方案
  3. 学霸都在用的学习神器,绝对能让你提升学习效率
  4. 关于应用Isight做代理模型及EI采点+优化
  5. 微信公众号发送小程序卡片_微信公众号将能够直接给用户推送小程序卡片,社交电商开始发力...
  6. JS基础-字符串拆分、截取、查找汇总
  7. 如何搭建 GTA 5 私服--GTA5私服架设教程
  8. 怎么把XPS文件转成Word——speedPDF在线批量免费帮您转换
  9. MAT223Assignment1课业解析
  10. 简洁的一键SSH脚本