优化淘宝商品比价定向爬虫--爬虫的浏览器伪装
目录
- 一、 原代码问题
- 二、淘宝Robots协议
- 三、User-Agent
- 四、查找headers和cookie
- 五、 完整代码
一、 原代码问题
- 爬取不到任何内容处理
- 原因:由于淘宝的设置,虽然可以requests爬取页面内容,但正则表达式会匹配不到任何内容
- 解决:替换headers,伪装浏览器向服务器发起请求
二、淘宝Robots协议
- Robots协议,是国际上搜索引擎对所有网站内容抓取的一个内容协议,通常来说,搜索引擎都必须遵守这个协议,曾经淘宝是禁止百度抓取和收录内容页面的
- 所以大家在百度上是无法通过搜索关键词和URL找到淘宝店铺和淘宝产品页面的,如今淘宝部分开放百度蜘蛛,这也意味着百度可以遵循OROBOTS协议,对淘宝内容进行排序
详见:https://www.taobao.com/robots.txt
User-agent: Baiduspider
Disallow: /User-agent: baiduspider
Disallow: /
三、User-Agent
- User-Agent是http协议中的一部分,属于头域的组成部分
- 这是一种向范文网站提供你所使用的浏览器类型,操作系统,浏览器内核等信息的标识
- 通过这个标识,用户所访问的网站可以显示不同的排版从而为用户提供更好的体验或者 进行信息统计
- Windows NT 10.0 对应操作系统 Windows 10
详见:windows NT的意义和各个版本https://blog.csdn.net/flyingpig2016/article/details/53282895
headers ={ 'User-Agent':user_agent}
User-Agent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'}
Chrome版本
Mozilla/5.0AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'
注意以上的User-Agent的作用就是伪装成浏览器修改http包中的header来实现
四、查找headers和cookie
- 打开抓取的淘宝页面,F12进入开发者工具
- 选择
Network-Name
- 第一条—
Headers
—Request Headers
- 复制
user-agent
- 按以下步骤查找到cookie
五、 完整代码
# CrowTaobaoPrice.py
import requests
import redef getHTMLText(url): # 获得网页信息headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'} # 使用浏览器headertry:coo = 't=85db5e7cb0133f23f29f98c7d6955615; cna=3uklFEhvXUoCAd9H6ovaVLTG; isg=BM3NGT0Oqmp6Mg4qfcGPnvDY3-pNqzF2joji8w9SGWTYBu241_taTS6UdFrF3Rk0; miid=983575671563913813; thw=cn; um=535523100CBE37C36EEFF761CFAC96BC4CD04CD48E6631C3112393F438E181DF6B34171FDA66B2C2CD43AD3E795C914C34A100CE538767508DAD6914FD9E61CE; _cc_=W5iHLLyFfA%3D%3D; tg=0; enc=oRI1V9aX5p%2BnPbULesXvnR%2BUwIh9CHIuErw0qljnmbKe0Ecu1Gxwa4C4%2FzONeGVH9StU4Isw64KTx9EHQEhI2g%3D%3D; hng=CN%7Czh-CN%7CCNY%7C156; mt=ci=0_0; hibext_instdsigdipv2=1; JSESSIONID=EC33B48CDDBA7F11577AA9FEB44F0DF3'cookies = {} # 上面的,登录淘宝后用开发者工具获取for line in coo.split(';'): # 浏览器伪装name, value = line.strip().split('=', 1)cookies[name] = valuer = requests.get(url, cookies=cookies, headers=headers, timeout=30)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]) # 通过split方法分割:后面的部分只取价格title = eval(tlt[i].split(':')[1]) # eval去掉双引号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 = 'T恤'depth = 2 # 要爬取几页start_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()
优化淘宝商品比价定向爬虫--爬虫的浏览器伪装相关推荐
- 网络爬虫与信息提取--正则表达式---淘宝商品比价定向爬虫
淘宝商品比价定向爬虫 本实例爬取时间2019.9.11 由于淘宝代码的不断完善更新,本爬取代码已经不能爬取出商品信息内容 原因:结果为空:打印html看到,需要登录淘宝 在网上找解决方法,可以复制co ...
- Python网络爬虫与信息提取笔记08-实例2:淘宝商品比价定向爬虫
Python网络爬虫与信息提取笔记01-Requests库入门 Python网络爬虫与信息提取笔记02-网络爬虫之"盗亦有道" Python网络爬虫与信息提取笔记03-Reques ...
- 淘宝商品比价定向爬虫-Python网络爬虫与信息提取-北京理工大学嵩天教授
功能描述 目标:获取淘宝搜索页面的信息,提取其中的商品名称和价格: 理解:淘宝的搜索接口.翻页的处理: 以课程中的搜索书包为例,对应的url如下: (1)起始页: (2)第二页:最后的s=44: (3 ...
- python爬虫笔记(六)网络爬虫之实战(1)——淘宝商品比价定向爬虫(解决淘宝爬虫限制:使用cookies)...
1. 淘宝商品信息定向爬虫 链接: https://www.taobao.com/ 2. 实例编写 2.1 整体框架 # -*- coding: utf-8 -*-import requests i ...
- Python爬虫实例之淘宝商品比价定向爬取!爬虫还是很有意思的!
这次就模仿之前做的总结进行初次尝试 目标:获取淘宝搜索页面的信息,提取其中的商品名称和价格 理解:获取淘宝的搜索接口淘宝页面的翻页处理 技术路线:requests--re 准备工作 获取淘宝搜索商品的 ...
- 基于python的购物比价毕设_【Python爬虫】淘宝商品比价定向爬虫
#CrowTaobaoPrice.py importrequestsimportredef getHTMLText(url):#获得网页信息 headers = {'User-Agent': 'Moz ...
- 爬虫(6)—— 淘宝商品比价定向爬虫
该实例来源于中国大学慕课,视频教学链接如下: 传送门 目标: 获取淘宝搜索页面的额信息,提取其中的商品名称和价格 关键点: 淘宝的搜索接口 翻页的处理 从以上图片中可以看出,搜索接口的形式是: htt ...
- python爬虫学习笔记(三)——淘宝商品比价实战(爬取成功)
2020年最新淘宝商品比价定向爬取 功能描述 目标:获取淘宝搜索页面的信息,提取其中的商品名称和价格. 理解:淘宝的搜索接口 翻页的处理 技术路线:requests re 程序的结 ...
- 淘宝商品价格定向爬虫
淘宝商品价格定向爬虫 (1) 目标:获取淘宝搜索页面的信息,提取其中的商品名称和价格 要实现淘宝的搜索接口,翻页的处理.主要采用了Requests, bs4库,re库 (2)程序的结构设计: 步骤1 ...
最新文章
- “六成应用开发不需要程序员”喜提热搜背后,RPA 会抢饭碗吗?
- 网络编程学习笔记(tcp_listen函数)
- VC中海量文件读写类设计与应用(转)
- java servlet https_javaweb项目对https的配置01
- vue之node.js的简单介绍
- 面试题4,打印出100-999所有的“水仙花数”。
- 缓存DNS 正向解析反向解析
- 橘子无法启动计算机丢失,《战地1》橘子平台无法启动 橘子意料之外的问题解决方法...
- 学习类APP如何规范
- 【通信协议】I2S/IIS总线介绍
- signature=71820b070a82d48c44cc938baccfcfc9,基于集成神经网络的离线手写签名鉴别方法
- HappenBefore指令重排
- 前端开发人员的精彩文字
- android 按钮带图标 阴影_Android Material Design系列之FloatingActionButton和Snackbar
- 我有博客了,泪流满面
- 概念:伪随机数、种子以及C中的随机函数
- R语言plot(lm)绘图结果解读
- Javascript 获得当前文件的url 目录,不含文件名
- 【转载】又1个教程--简明批处理教程
- 用 Java 生成和识别二维码就这么简单
热门文章
- Hotmail Javascript安全漏洞
- [19考研]寒假复习时间表
- 小游戏渠道大盘点,不可错过的流量入口
- 阿里巴巴代码bug扫描插件
- MySQL NDB Cluster使用docker compose一键部署
- stm32简单小实例_抓住蝶粉的心,STM32有“利器”!
- android 招聘需求整理
- 「Linux」- 运行任天堂红白机游戏(“小霸王”) @20210308
- 前端js打开pdf文件--文件通过浏览器打开,以pdf形式进行预览
- 发现一个很神奇的现象,求大神解释