• 一. 淘宝商品信息定向爬虫

  • 二. 爬虫基础:正则表达式

  • 三. 淘宝页面查看与分析

  • 四. 爬虫源码

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

注意淘宝的robots.txt不允许任何爬虫爬取,我们只在技术层面探讨这一章节的内容。

二. 爬虫基础:正则表达式

  • 完整版正则表达式的详细介绍见本人的这篇博客:
    博客链接

三. 淘宝页面查看与分析

  • 功能描述:
    目标:获取淘宝搜索页面的信息,提取其中的商品名称和价格
    理解:淘宝的搜索接口
    翻页的处理
    技术路线:requests-re
  • 淘宝商品信息起始页
    https://s.taobao.com/search?q=%E4%B9%A6%E5%8C%85&imgfile=&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.2017.201856-taobao-item.1&ie=utf8&initiative_id=tbindexz_20170306
  • 第二页
    https://s.taobao.com/search?q=%E4%B9%A6%E5%8C%85&imgfile=&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.2017.201856-taobao-item.1&ie=utf8&initiative_id=tbindexz_20170306&bcoffset=3&ntoffset=3&p4ppushleft=1%2C48&s=44
  • 第三页
    https://s.taobao.com/search?q=%E4%B9%A6%E5%8C%85&imgfile=&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.2017.201856-taobao-item.1&ie=utf8&initiative_id=tbindexz_20170306&bcoffset=0&ntoffset=6&p4ppushleft=1%2C48&s=88
  • 一. 回到文首
  • 淘宝界面源代码:
  • 我们查看淘宝的源代码:发现,价格字段由’view_price’来标识,商品名称字段由’raw_title’来标识。因此如果我们想要获得这两个信息,只要在获得的文本中检索到其中的view_price和raw_title并把后续的相关内容提取出来即可。
  • 从众多的文本中提取我们想要的信息,用正则表达式是非常合适的。另一个重要原因是,淘宝页面的商品信息虽然包含在html页面中,但它是一种脚本语言的体现,并不是完整的html页面的表示,它使用了动态脚本js,所以我们这里bs4库九无能为力了。
  • 按嵩老师给的方法,现在已经不能够爬取内容。
  • 一. 回到文首
  • 现在需要模拟浏览器的header,也可以说是cookie,如下所示:
    (1):首先登陆自己的淘宝账户
    (2):在淘宝首页搜索书包
    (3):在下方界面右键点击检查(以Chrome为例)

  • 点击network,然后不要关闭检查界面,点击浏览器的刷新按钮,这时会出现很多文件
  • 在红框文件处右键,选择Copy as cURL(bash)转到网址点击:https://curl.trillworks.com/,不要关闭淘宝界面,因为界面关闭后cookie只能维持一小段时间。关机之后爬取仍需重新粘贴新的headers。
  • 一. 回到文首
  • 将复制内容,粘贴到curl command,可以规范代码格式。再复制Python requests里的
headers = {}
  • 里的内容即可,放到自己的代码中。
  • 一. 回到文首

四. 爬虫源码

  • 爬虫源码,在Python环境中运行即可:
import requests
import redef getHTMLText(url):try:# ***********************************************************# 下方的header的字符串填上自己的浏览器生成的内容# ***********************************************************header = {'authority': '','cache-control': '','upgrade-insecure-requests': '','user-agent': '','accept': '','referer': '','accept-encoding': '','accept-language': '','cookie': '',}r = requests.get(url, headers = header)r.raise_for_status()r.encoding = r.apparent_encoding# print(r.request.headers)return r.textexcept:return ""def parserPage(ilt, html):"""parserPage()函数用来解析返回的html页面"""try:# 老师的教程上这里在原始字符串里用了转义符,可以不用,但在\.这里必须用# 因为.也是正则表达式里的一个特殊字符,用\.转义表示是真正的小数点# 用变量plt来接受findall()方法返回的列表# plt所存储的列表的内容是html中所有满足正则表达式# r'"view_price":"\d+\.\d*"'的字符串,以列表形式返回plt = re.findall(r'"view_price":"\d+\.\d*"', html)# 用变量tlt存储返回的title信息列表tlt = re.findall(r'"raw_title":".*?"', html)# 遍历列表pltfor i in range(len(plt)):# 把plt列表中的第i个字符串拿出来,并用:分割,将价格以字符串形式返回# eval()将字符串类型的价格转化为整形price = eval(plt[i].split(':')[1])# title这里可以加eval(),输出时不带引号,也可以不加,自己实验title = tlt[i].split(':')[1]# 将price和title组成的列表追加到ilt列表中ilt.append([price, title])except:print("")def printGoodsList(ilt):"""printGoodsList()函数打印商品信息"""# tplt定义了一个待格式化的字符串tplt = "{:4}\t{:8}\t{:16}"# tplt调用format()方法,按次序将字符串填入相对应的{}中print(tplt.format("序号", "价格", "商品名称"))# 定义一个计数器,用于输出序号count = 0for g in ilt:# 遍历列表iltcount += 1# 格式化输出序号count,价格g[0],商品名称g[1]print(tplt.format(count, g[0], g[1]))def main():# 定义要搜索的商品名goods = '书包'# 定义爬取的深度depth = 2# 定义爬取的urlstart_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)parserPage(infoList, html)except:continueprintGoodsList(infoList)main()
  • 注意淘宝的robots.txt不允许任何爬虫爬取,我们只在技术层面探讨这一章节的内容。
    仅供教学,请勿对淘宝网造成性能干扰。
  • 一. 回到文首

Python爬虫模拟浏览器的headers、cookie,爬取淘宝网商品信息相关推荐

  1. 用Python爬取淘宝网商品信息

    用Python爬取淘宝网商品信息 转载请注明出处 网购时经常会用到淘宝网 点我去淘宝但淘宝网上的商品琳琅满目,于是我参照中国大学 MOOC的代码写了一个爬取淘宝网商品信息的程序 代码如下: impor ...

  2. Python爬虫——4.6使用requests和正则表达式、随机代理爬取淘宝网商品信息

    # coding:utf-8 ''' 使用requests模块,使用代理,进行淘宝网商品信息的爬取 ''' # 引入需要的模块 import requests import random import ...

  3. 【python爬虫】爬取淘宝网商品信息

    相信学了python爬虫,很多人都想爬取一些数据量比较大的网站,淘宝网就是一个很好的目标,其数据量大,而且种类繁多,而且难度不是很大,很适合初级学者进行爬取.下面是整个爬取过程: 第一步:构建访问的u ...

  4. python +selenium 爬取淘宝网商品信息

    前几天用python爬取豆瓣关于电影<长城>的影评,发现豆瓣的网页是静态的,心中一阵窃喜.以为对于动态网页了解的不是太多.但是主要是用cookie加headers爬取的.效果还不错,爬取了 ...

  5. 爬虫(6)-使用selenium爬取淘宝天猫商品信息(价格,销售量等)

    文章目录 1.只读取第一页 1.1准备工作 1.2.定位 1.3.获取商品信息 1.4. 整体代码 1.5.输出结果展示 1.6改进,存储在CSV文件内并分行存储 2.读取多页商品信息 2.1部分问题 ...

  6. 网络爬虫爬取淘宝页面商品信息

    网络爬虫爬取淘宝页面商品信息 最近在MOOC上看嵩老师的网络爬虫课程,按照老师的写法并不能进行爬取,遇到了一个问题,就是关于如何"绕开"淘宝登录界面,正确的爬取相关信息.通过百度找 ...

  7. python使用requests库爬取淘宝指定商品信息

    python使用requests库爬取淘宝指定商品信息 在搜索栏中输入商品 通过F12开发者工具抓包我们知道了商品信息的API,同时发现了商品数据都以json字符串的形式存储在返回的html内 解析u ...

  8. python爬虫数据分析项目 双十一_Python爬取淘宝商品数据,价值千元的爬虫外包项目!...

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 完整代码可以点击下方链 ...

  9. requests+cookie爬取淘宝任意商品评论。超详细教程!

    首先使用的工具:python3.7,火狐浏览器 思路分析:现在网页版淘宝搜索商品之后,点进去,基本上都会弹出登录框,当我们直接把一个商品的链接去爬取的时候,返回的会是登陆页面的Html,所以我们第一步 ...

最新文章

  1. R语言Kmeans聚类、抽取聚类簇:fpc包的kmeansruns函数通过Calinski-Harabasz准则和平均轮廓系数(ASW)为Kmeans选择最优的聚类K值、并与层次聚类的最优K值进行比较
  2. 用宏定义代替printf函数
  3. maskrcnn还可以加网络吗_桃子加蜂蜜可以榨汁吗?桃子和蜂蜜可以一起吃吗?原来可以这样吃...
  4. D - Covering HDU - 6185(未解决完)
  5. 2字节十六进制浮点数 qt_Qt二进制文件操作(读和写)详解
  6. 从王者荣耀看设计模式(六.状态模式)
  7. python中socket.gaierr errno1104_“socket.gaierror:[Errno 11004]getaddrinfo失败”
  8. MySQL如何使用.sql后缀的文件
  9. js读取excel数据
  10. 22000字深入研究消费电子光学传感器行业
  11. 小米手机(MIUI 13)安装Fiddler CA证书
  12. .NET之盛派微信SDK简单操作
  13. javascript写的日历控件(收藏)
  14. Docker容器安装Mysql8
  15. mixly for linux64,Mixly编程for Linux
  16. Android权限申请之动态申请权限
  17. java回收策略_Java 中的垃圾回收策略
  18. LNMP架构和论坛搭建以及一键部署
  19. 全球茶叶产量、消费量及进出口贸易分析:中国茶叶产量全球排名第一[图]
  20. html--P1-P10

热门文章

  1. android 菜单展开动画,FloatingActionButton实现 展开/折叠 的多级悬浮菜单
  2. 【JS】问号点(?.)和双问号(??)的用法
  3. vue利用自定义指令全局去除el-input框前后空格
  4. 大学学计算机应该选哪个专业呢?
  5. 亚马逊关键词优化:3 种强大的方法来查找可转换的关键词
  6. 亚马逊关键词上首页工具
  7. 基于安卓的简单理财系统
  8. 文字转语音小助手有哪些?分享三款,配音免费还易操作
  9. HR眼中高质量的简历模板,这些雷你踩过吗?
  10. “为地球熄灯一小时”纯属闹剧