目标:

获取淘宝搜索页面的信息

提取其中的商品名称和价格

(一)程序的结构设计:

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

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

3:将信息输出到屏幕上

(二)代码实现:

1:先构建出函数的整体框架

2: 对每一个函数具体的代码进行设计和编写

(三)解决只打印表头问题

(后续反爬虫问题)

嵩天老师

小数据孩儿来交笔记喽!!!

#淘宝商品信息定向爬虫
import requests  #引入requests库获得链接
import re        #引入正则表达式库获得相关内容
def getHTMLText(url): #爬取网页的通用代码框架try:r=requests.get(url,timeout=30) #获取页面的url链接r.raise_for_status()    #如果状态不是200,引发HTTP Error异常r.encoding=r.apparent_encoding  #修改编码return r.text   #将网页的信息内容返回给其他部分except:  #异常部分(如果出现错误,将返回一个空字符串)return ""
def parsePage(ilt,html): #设计和开发parsePage函数,是整个函数的关键try:plt = re.findall(r'\"view_price\"\:\"[\d\.]*\"',html) #re 库的主要功能函数 ,反斜杠代表引用tlt = re.findall(r'\"raw_title\"\:\".*?\"',html)for i in range(len(plt)):price = eval(plt[i].split(':')[1])title = eval(tlt[i].split(':')[1])ilt.append([price , title])except:print("")
def printGoodsList(ilt):  #输出商品信息tplt = "{:4}\t{:8}\t{:16}" #设计打印模板叫做tplt,大括号定义槽函数,第一个位置长度给4,中间位置长度为8,最后位置长度为16print(tplt.format("序号", "价格", "商品名称")) #打印表头count = 0 #定义一个输出信息的计数器for g in ilt:count = count + 1print(tplt.format(count, g[0], g[1])) #count代表商品序号,后面的分别代表商品的价格和商品的名称
def main():   #定义主函数goods = '书包'  #搜索关键词,定义一个变量depth = 3      #向下一页爬取的深度start_url = 'https://s.taobao.com/search?q=' + goodsinfoList = []  #对整个的输出结果定义一个变量叫做infoListfor i in range(depth): #不同的页面是不同的urltry:url = start_url + '&s=' + str(44*i) #对每一个页面的url链接进行一个设计html = getHTMLText(url)parsePage(infoList, html)except:continueprintGoodsList(infoList)  #这时候的结果信息保存在infoList中
main()   #最后通过调用主函数来使整个程序运行

这样程序是写完了(嵩天老师原版代码)

但是打印出来的只有表头并没有商品信息

如何解决只打印表头的问题呢?

1、在淘宝官网搜索框中搜索“书包”

按“ctrl+shift+i”打开“开发人员工具”

(快捷键也许不同,自行查阅)

如下图:

网络、全部、选中箭头指向位置

(如果箭头位置不变

就去左面的搜索栏点击一下搜索)

在箭头下面的名称位置选择第一个

并右击弹出有复制的菜单

再选择复制为cURL(bash)

2、打开一个新的网址:https://curl.trillworks.com/

将上面复制的内容粘贴到下图红框的位置

(附图为粘贴完的效果)

3、将页面往下滑

将python requests框内的headers={**}

内容复制到如下下图位置

除了以上的变动外还要有以下变动

r=requests.get(url,timeout=30)
#改成
r=requests.get(url,headers=headers)

4、最终代码(我将代码'cookie','referer'隐藏了,每个人的都不一样,大家在上述操作中直接复制自己的headers内容即可,记得将cookie前的#号去掉,否则还是打印不出内容)

#爬取淘宝页面
import requests
import re
def getHTMLText(url):try:headers={'authority': 'suggest.taobao.com','accept': '*/*','accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',# Requests sorts cookies= alphabetically'cookie': '**********','referer': '*********','sec-ch-ua': '"Chromium";v="106", "Microsoft Edge";v="106", "Not;A=Brand";v="99"','sec-ch-ua-mobile': '?0','sec-ch-ua-platform': '"Windows"','sec-fetch-dest': 'script','sec-fetch-mode': 'no-cors','sec-fetch-site': 'same-site','user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47',}r=requests.get(url,headers=headers)r.raise_for_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(len(plt)):price = eval(plt[i].split(':')[1])title = eval(tlt[i].split(':')[1])ilt.append([price , title])except: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 = 3start_url = 'https://s.taobao.com/search?q=' + goodsinfoList = []for i in range(depth):try:url = start_url + '&s=' + str(44*i)html = getHTMLText(url)parsePage(infoList, html)except:continueprintGoodsList(infoList)
main()

5、 运行成功

笔记就到这里了,希望对大家有所帮助!!!
网络爬虫盗亦有道!!!

不要不加节制的爬取该网页呦!!!

中国大学MOOC“淘宝商品信息定向爬虫”实例(2022版)相关推荐

  1. 淘宝商品信息定向爬虫实例

    1.说明 获得淘宝的搜索接口 淘宝搜索页面不允许爬虫爬取 不要不加限制的爬取次网站 2.代码 import re import requestsdef getHTMLText(url):try:hea ...

  2. Python爬虫学习笔记(实例:淘宝商品信息定向爬虫)

    淘宝商品信息定向爬虫先贴代码,后看解析: #淘宝商品信息定向爬虫 import requests import re#获得页面 def getHTMLText(url):try:#headers = ...

  3. Python爬虫入门实例五之淘宝商品信息定向爬取(优化版)

    文章目录 写在前面 一.爬取原页面 二.编程思路 1.功能描述 2.程序的结构设计 三.编程过程 1.解决翻页问题 2.编写getHTMLText()函数 3.编写parsePage()函数 (1). ...

  4. 淘宝商品信息定向爬虫

    只用来学习请勿无限制使用爬虫 功能描述 目标:获取淘宝搜索页面的信息媒体去其中的商品名称和价格 程序的结构设计 步骤1:提交商品搜索请求,循环获取页面 步骤2:对每个页面,提取商品名称和价格信息 步骤 ...

  5. python爬淘宝的退货信息_Python——淘宝商品信息定向爬虫(requests+re)

    有点崩,现在好像爬取不到任何东西了 目标:获取淘宝搜索页面的信息,提取其中的商品名称和价格 理解: 1.怎样去通过程序向淘宝提交请求,并获得提取的结果 2.怎样展示翻页的处理 首先我们要查看淘宝网的r ...

  6. Python爬虫 淘宝商品信息定向爬虫

    代码: import requests import redef getHTMLText(url):try:r = requests.get(url, timeout=30)r.raise_for_s ...

  7. 爬虫9-淘宝商品信息定向爬虫

    功能描述: 目标 获取淘宝搜索页面的信息,提取其中的商品信息名称和价格 理解 淘宝的搜索接口 翻页的处理 技术路线 requests re 当我们在淘宝上搜索书包时: 观察淘宝页面可知每一页共44个商 ...

  8. 利用Selenium爬取淘宝商品信息

    文章来源:公众号-智能化IT系统. 一.  Selenium和PhantomJS介绍 Selenium是一个用于Web应用程序测试的工具,Selenium直接运行在浏览器中,就像真正的用户在操作一样. ...

  9. 爬取淘宝商品信息selenium+pyquery+mongodb

    ''' 爬取淘宝商品信息,通过selenium获得渲染后的源码,pyquery解析,mongodb存储 '''from selenium import webdriver from selenium. ...

最新文章

  1. python http接口_python处理http接口请求
  2. 组网中交换机虚拟化技术的应用
  3. Linux开机详细流程
  4. javaweb基础(35)_jdbc处理oracl大数据
  5. hdfs源码分析第一弹
  6. Eclipse自动代码补全
  7. Nacos服务端流程图
  8. Linux获得命令帮助
  9. SAP RFC user 最小权限
  10. 计算机网络聚合怎么设置,交换机的端口聚合如何配置
  11. webpack静态资源地址注入html,Webpack4+ 多入口程序构建
  12. main函数中argc和argc参数解释
  13. 图的遍历(广度优先遍历)- 数据结构和算法61
  14. 计算机用户注册表修改,WindowsServer2012 注册表修改用户的连接数
  15. 基于zigbee的智能家用空气监测系统
  16. 【图论】 腾讯大战360
  17. win10做好备份如何恢复系统
  18. 电脑误删wps文件怎么恢复?介绍4个解决方法
  19. Consul + fabio 实现自动服务发现、负载均衡 1
  20. 微信重磅功能更新!加好友按人数收费,视频号付费订阅、微信版“知乎”来了...

热门文章

  1. mysql事务的四大特性_数据库事务四大特性是什么?
  2. Android动感歌词制作器(支持翻译和音译歌词)
  3. Martin Thompson:协议设计与实现
  4. 当“海外华人”发现淘宝/天猫以后……
  5. Android BLE与终端通信(二)——Android Bluetooth基础搜索蓝牙设备显示列表
  6. 图片隐写——小苹果wp
  7. 用真挚的钥匙打开Java多线程之锁,从此Java中有我,我中有Java!
  8. 使用digispark制作一个BadUSB
  9. 代理模式(Proxy模式)详解
  10. 滑动验证码的解决方案