听说大家最近对爬虫感兴趣,所以今天手把手带你爬天猫。

爬虫爬什么呢?

因为海报出圈的杜蕾斯,真的是家喻户晓。

不如就它吧

对于有些网站,需要登陆后才有可能获取到网页中的数据。天猫网站就是其中的网站之一。

这里我想要爬取的是杜蕾斯。因此我们直接搜索“杜蕾斯”。由于“杜蕾斯”的卖家有很多,这里我们只选取页面的第一个图片,进行其中的“评论数据”的爬取。

点击第一个图片,进入到我们最终想要爬取数据的网页。可以看到该页面有很多评论信息,这也是我们想要抓取的信息。

进行第一次请求测试

import pandas as pd
import requests
import re
import timeurl = "https://detail.tmall.com/item.htm?spm=a220m.1000858.1000725.1.626d40c2tp5mYQ&id=43751299764&skuId=4493124079453&areaId=421300&user_id=2380958892&cat_id=2&is_b=1&rn=cc519a17bf9cefb59ac94f0351791648"
headers ={'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'
}
data = requests.get(url,headers=headers).text
data

结果如下:

结果分析:明明评论信息就是在这个页面里面,我们这样请求,怎么得不到数据呢?难道是没有带着cookies发送请求?我们接下来尝试带着cookies发送请求。

进行第二次请求测试

import pandas as pd
import requests
import re
import timeurl = "https://detail.tmall.com/item.htm?spm=a220m.1000858.1000725.1.626d40c2tp5mYQ&id=43751299764&skuId=4493124079453&areaId=421300&user_id=2380958892&cat_id=2&is_b=1&rn=cc519a17bf9cefb59ac94f0351791648"
headers ={'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'
}
data = requests.get(url,headers=headers).text
data

结果如下:

结果分析:不科学哈!这次我已经带着cookies发送了请求呀,为什么还是获取不到我们想要的数据,会不会“评论数据”根本就不再这个url中呢?那么真正的true_url究竟在哪里呢?下面我们慢慢解密。

怎么找到真正的true_url?

1)点击【鼠标右键】–>点击【检查】

2)点击【Network】

3)刷新网页

刷新网页以后,可以发现【红色方框】中,多了很多请求的url。

4)点击【搜索按钮】,进行评论数据搜索,寻找trul_url

当出现如下界面后,按照如图所示操作即可。

紧接着,查看该请求所对应的Request URL就是我们最终要找的true_url。信不信吗?下面可以试试。

进行第三次请求测试

首先我们在上述图的基础上,顺着Request URL往下面找,获取Request Headers中user-agent、referer、cookie这3样东西。

  反正都在Request Headers中,我们将这3样东西,一一粘贴到headers中,形成一个字典格式的键值对。然后我们发起其三次请求。

true_url = "https://rate.tmall.com/list_detail_rate.htm?itemId=43751299764&spuId=864684242&sellerId=2380958892&order=3&currentPage=1&append=0&content=1&tagId=&posi=&picture=&groupId=&ua=098%23E1hvmvvPvBvvUvCkvvvvvjiPn25UQjlHnLs9ljD2PmPUtjEmPFsUzjiUPsFh0jYR9phv2nsGdj2qzYswMjBt7u6CvvDvpiQZN9CC0Jujvpvhphhvv2yCvvBvpvvvKphv8hCvvvvvvhjPphvhqvvvpkxvpCBXvvC2p6CvHHyvvh84phvWipvvpS0EvpvVpyUUCCQOuphvmhCvCW780nVlmphvLhm6DQmFdcHmjobWlCkfJy3Qp%2BoQRqwiL7CpqU0QKoZHaysEDLuTWD19C7zhdixdBAyZgn94e7Q4b64B9CkaU6UsxI2wjLyDZLxjKOvCvpvVphhvvvvv2QhvCvvvMM%2F5vpvhphvhH86CvCHUooppwvCvws1B34ZzKsELW86CvvDvp3%2BpDQCCTzurvpvEphHi7WWvpORURphvChCvvvv%3D&needFold=0&_ksTS=1585207007017_726&callback=jsonp727"
headers ={# 用的哪个浏览器'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36',# 从哪个页面发出的数据申请,每个网站可能略有不同'referer': 'https://detail.tmall.com/item.htm?spm=a220m.1000858.1000725.1.744840c2FKDkFG&id=43751299764&skuId=4493124079453&areaId=421300&user_id=2380958892&cat_id=2&is_b=1&rn=388ceadeefb8d85e5bae2d83bd0b732a',# 哪个用户想要看数据,是游客还是注册用户,建议使用登录后的cookie'cookie': 'tk_trace=1; cna=qzxtFlkIdkICARsvgIh8ftNm; t=972672ef4a0555634bb4c53147d9c209; _tb_token_=f9ed83467e7ab; cookie2=11c397b08781b52815002215ea5d1ad4; dnk=huang%5Cu81F3%5Cu5C0A; tracknick=huang%5Cu81F3%5Cu5C0A; lid=huang%E8%87%B3%E5%B0%8A; lgc=huang%5Cu81F3%5Cu5C0A; uc1=cookie16=UIHiLt3xCS3yM2h4eKHS9lpEOw%3D%3D&pas=0&existShop=false&cookie15=UtASsssmOIJ0bQ%3D%3D&cookie14=UoTUP2D4F2IHjA%3D%3D&cookie21=VFC%2FuZ9aiKCaj7AzMHh1; uc3=id2=UU8BrRJJcs7Z0Q%3D%3D&lg2=VT5L2FSpMGV7TQ%3D%3D&vt3=F8dBxd9hhEzOWS%2BU9Dk%3D&nk2=CzhMCY1UcRnL; _l_g_=Ug%3D%3D; uc4=id4=0%40U22GV4QHIgHvC14BqrCleMrzYb3K&nk4=0%40CX8JzNJ900MInLAoQ2Z33x1zsSo%3D; unb=2791663324; cookie1=BxeNCqlvVZOUgnKrsmThRXrLiXfQF7m%2FKvrURubODpk%3D; login=true; cookie17=UU8BrRJJcs7Z0Q%3D%3D; _nk_=huang%5Cu81F3%5Cu5C0A; sgcookie=E53NoUsJWtrYT7Pyx14Px; sg=%E5%B0%8A41; csg=8d6d2aae; enc=VZMEO%2BOI3U59DBFwyF9LE3kQNM84gfIKeZFLokEQSzC5TubpmVCJlS8olhYmgHiBe15Rvd8rsOeqeC1Em9GfWA%3D%3D; l=dBLKMV6rQcVJihfaBOfgSVrsTkQ9UIRb8sPrQGutMICP9ZCwNsyFWZ4Kb-8eCnGVHsMvR3oGfmN0BDTHXyIVokb4d_BkdlkmndC..; isg=BK2tcrfNj3CNMWubo5GaxlajvEknCuHcPbxLgO-yO8QhZswYt1ujrPVwUDqAZvmU'
}
data = requests.get(true_url,headers=headers).text
data

结果如下:

结果分析:经过一番波折,我们最终找到了我们想要获取的数据,接下来的话,就是我们进行页面解析的工作了。

其实在真实的爬虫环境中,可能会遇到更多的反爬措施,真正难得不是解析网页,而是分析网页和反爬。

获取网页中的评论数据

result = re.findall('rateContent":"(.*?)"fromMall"',data)
result

结果如下:

翻页爬取(最终代码)

  我们的目的肯定不只是爬取一个页面的评论数据,而是进行翻页爬取,我们需要仔细观察true_url中,有一个【currentPage=1】参数,当这个数字变化的时候,对应的页面也就发生的变化,基于此,我们将完整的爬虫代码写在下面。

(左滑获取完整代码)

import pandas as pd
import requests
import re
import timedata_list = []for i in range(1,300,1):print("正在爬取第" + str(i) + "页")url = first + str(i) + lastheaders ={# 用的哪个浏览器'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36',# 从哪个页面发出的数据申请,每个网站可能略有不同'referer': 'https://detail.tmall.com/item.htm?spm=a220m.1000858.1000725.1.744840c2FKDkFG&id=43751299764&skuId=4493124079453&areaId=421300&user_id=2380958892&cat_id=2&is_b=1&rn=388ceadeefb8d85e5bae2d83bd0b732a',# 哪个用户想要看数据,是游客还是注册用户,建议使用登录后的cookie'cookie': 'tk_trace=1; cna=qzxtFlkIdkICARsvgIh8ftNm; t=972672ef4a0555634bb4c53147d9c209; _tb_token_=f9ed83467e7ab; cookie2=11c397b08781b52815002215ea5d1ad4; dnk=huang%5Cu81F3%5Cu5C0A; tracknick=huang%5Cu81F3%5Cu5C0A; lid=huang%E8%87%B3%E5%B0%8A; lgc=huang%5Cu81F3%5Cu5C0A; uc1=cookie16=UIHiLt3xCS3yM2h4eKHS9lpEOw%3D%3D&pas=0&existShop=false&cookie15=UtASsssmOIJ0bQ%3D%3D&cookie14=UoTUP2D4F2IHjA%3D%3D&cookie21=VFC%2FuZ9aiKCaj7AzMHh1; uc3=id2=UU8BrRJJcs7Z0Q%3D%3D&lg2=VT5L2FSpMGV7TQ%3D%3D&vt3=F8dBxd9hhEzOWS%2BU9Dk%3D&nk2=CzhMCY1UcRnL; _l_g_=Ug%3D%3D; uc4=id4=0%40U22GV4QHIgHvC14BqrCleMrzYb3K&nk4=0%40CX8JzNJ900MInLAoQ2Z33x1zsSo%3D; unb=2791663324; cookie1=BxeNCqlvVZOUgnKrsmThRXrLiXfQF7m%2FKvrURubODpk%3D; login=true; cookie17=UU8BrRJJcs7Z0Q%3D%3D; _nk_=huang%5Cu81F3%5Cu5C0A; sgcookie=E53NoUsJWtrYT7Pyx14Px; sg=%E5%B0%8A41; csg=8d6d2aae; enc=VZMEO%2BOI3U59DBFwyF9LE3kQNM84gfIKeZFLokEQSzC5TubpmVCJlS8olhYmgHiBe15Rvd8rsOeqeC1Em9GfWA%3D%3D; l=dBLKMV6rQcVJihfaBOfgSVrsTkQ9UIRb8sPrQGutMICP9ZCwNsyFWZ4Kb-8eCnGVHsMvR3oGfmN0BDTHXyIVokb4d_BkdlkmndC..; isg=BK2tcrfNj3CNMWubo5GaxlajvEknCuHcPbxLgO-yO8QhZswYt1ujrPVwUDqAZvmU'}try:data = requests.get(url,headers = headers).texttime.sleep(10)result = re.findall('rateContent":"(.*?)"fromMall"',data)data_list.extend(result)except:print("本页爬取失败")
df = pd.DataFrame()
df["评论"] = data_list
df.to_excel("评论_汇总.xlsx")

结果如下:

- END -

今日福利领取

扫码回复  资源

▼领取以下资料▼

长按进入小程序,进行30天打卡

打卡第12期,20本新书,快来看看!

(更多精彩值得期待……)

  推荐阅读
  • 小姐姐用动图展示 10 大 Git 命令,包你看完过目不忘!

  • 浏览器份额榜单出炉:Edge登上第二、第一名无人能撼动!

  • 卧槽!GitHub评分很高的开源项目,必须收藏!

  • 总结了大量的 Java 代码精简之道,非常棒!

看完本文有收获?点赞、分享是最大的支持

明天见(。・ω・。)ノ♡

数据告诉你杜蕾斯是怎么风靡全球的?相关推荐

  1. 【风靡全球年近40年的C++过时了吗?C++20来告诉大家】

    作为带有类的C的继承者,丹麦计算机科学家Bjarne Stroustrup于1982年发明了C++.1985年,发布了第一版的"C++程序设计语言".第一个标准化版本的C++在19 ...

  2. 大数据告诉你哪部电影最有影响力

    史上哪部电影最有影响力? 是票房大热的漫威英雄,还是号称影响了一代人的<星球大战>,或者是具有浪漫主义色彩的黑帮史诗<教父>? 其实都不是. " 历史上最具影响力的电 ...

  3. 风靡全球的GANs:一文看尽这“混世魔王”的“三生三世”

    点击我爱计算机视觉标星,更快获取CVML新技术 本文转载新智元. 也许您已经了解到,当前的人工智能已经可以生成类似于人类的语音,或者生成难以与真实照片区分开的人物图像,甚至达到足以"以假乱真 ...

  4. 风靡全球25年的重磅IP,新作沦为脚本乐园

    纵观游戏发展史,二十世纪九十年代可谓是神作辈出,如<俄罗斯方块>.<超级马里奥世界>.<刺猬索尼克>等大作在游戏市场掀起一股又一股热潮. 而当时,RPG游戏却在激烈 ...

  5. 大数据告诉你何时何地买手机最划算!

    文章讲的是大数据告诉你何时何地买手机最划算, 你想知道一年之中哪一天手机最便宜吗? 你想知道手机在哪家电商买最便宜吗? 你想知道哪些品牌的手机卖的最好吗? 品类包含:手机 平台包含:天猫.京东.1号店 ...

  6. 风靡全球的社交媒体二维码在国内正式上线啦!

    你还在为国内互联网平台之间互相屏蔽的问题而烦恼不已吗? 现在,只需要一个社交媒体二维码,就可以轻松将国内16个主流社交媒体渠道汇集在一个页面.让粉丝增长.获客引流变得更加高效和轻松. 扫描二维码之后, ...

  7. 缓冲协议才是Python风靡全球的主要原因

    Python已经成为目前使用最广泛且用户增长最快的编程语言.它优雅简洁的语法.强大的第三方库支持等都是Python能够风靡各行各业的原因.然而,你或许不知道,Python能够实现用户飞速增长,背后其实 ...

  8. 从风靡全球到风口,Tiktok是如何做到的?

    大家好,我是瑞卡迪电子商务.我们是从2019年下半年就注意到了TikTok的风口,并在2020年初,团队就开始投入TikTok的运营及商业变现.从2019年起,围绕TikTok一系列的产品功能迭代和商 ...

  9. 大数据告诉你英语绝不是废物技能——王思聪手撕花千芳撕对了

    最近王思聪跟网络作家花千芳在微博上互怼,花千芳的原话是:"对绝大多数中国人来说,英语都是一件废物技能,浪费了我们无数人力财力,牺牲了孩子们宝贵的童年." 对此,王思聪评论说:&qu ...

最新文章

  1. 《机电传动控制》学习笔记03-1
  2. ASIHTTPRequest取消异步请求
  3. Linux查看和剔除当前登录用户详细教程
  4. 字符串反序,逆序输出字符串
  5. PostgreSQL的initdb 源代码分析之五
  6. mysql-8.0.14-winx64,mysql-8.0.15-winx64 解压版安装教程及退出的三种方式
  7. 春节抽空读了8本书,只有这本书我1字不落的读完了!(上)
  8. 命令查看mysql端口映射_【转载】烂泥:如何利用telnet命令检测端口映射是否成功...
  9. [原] CentOS 7 安装 nginx, php mysql 套件
  10. STM32F107VCTx I2C通信
  11. 水果店的开业活动怎么做,水果店开业活动朋友圈怎么发
  12. Python 命令行参数详解
  13. SQL:SEARCH DEPTH FIRST和 SEARCH BREADTH FIRST
  14. 树莓派远程视频监控的移植pistreaming
  15. c语言 图形界面 入门,C语言是怎么实现图形界面的?
  16. 电子日记本–我用过的最好的 Windows 工具之一
  17. 利用JCreator调试web程序
  18. 【Android -- 相机】调用摄像头拍照 选择照片
  19. 无犯罪证明(开证明指南山西籍)
  20. ortc和webrtc

热门文章

  1. esc键退出全屏 vue_vue项目实现全屏,退出全屏,图标切换的解决方案
  2. SS端加密以及obfs混淆推荐
  3. Apriori算法的介绍
  4. [图论]---[网络流]---最小点割数/最小点割集
  5. oracle中execute是什么意思,oracle中EXECUTEIMMEDIATE是什么意思?如何使用,请用自己......
  6. 写给父亲的语音计算器(加减乘除的处理C#,三)
  7. 截取计算机全屏画面的方法有,全屏截图快捷键的快捷键是什么
  8. 洛谷 P1645 序列
  9. 3dmax室内灯光强度一般打多少才合适
  10. 改变Dev-C++生成的exe文件图标