**

python-如何爬取天猫店铺的商品信息

**

1.本文使用的是python-scrapy 爬取天猫博库图书专营店的数据,登录天猫 获取登录之后的cookie
通过下面两幅图片elements与网页源码对比不难看出,我们通过代码获取的源码与elements是对不上的,也就是说需要我们自己查找数据所在位置


下面重点来了!!!
通过network中的对请求进行抓包,查看,获取了如下网址

请求该网址可以看到获取了如下内容

此时再查看elements与源码发现终于对应上了,松了一口气,但是还有一个问题,这个网址还需要解析呢,不难,看下去就明白了
通过对获取的网址进行删减,我们可以获取到如下url

https://bokuts.tmall.com/i/asynSearch.htm?callback=jsonp119&mid=w-15421479631-0&wid=15421479631&path=/category-1292495385.htm&spm=a1z10.5-b-s.w4011-15421479631.132.2d944a88DdcUWW&search=y&scene=taobao_shop&catId=1292495385&pageNo=2&scid=1292495385https://bokuts.tmall.com/i/asynSearch.htm?callback=jsonp119&mid=w-15421479631-0&wid=15421479631&path=/category-1292493589.htm&spm=a1z10.5-b-s.w4011-15421479631.133.59b94a88Cyzcqr&search=y&scene=taobao_shop&catId=1292493589&pageNo=4&scid=1292493589

对不可以看到不同点共有四个:
category,spm,catId,pageNo,
pageno 是页数,不要管,那还剩三个参数在哪里呢?回头看一开始的请求网址

https://bokuts.tmall.com/category-1292495365.htm?spm=a1z10.5-b-s.w4011-15421479631.158.3cd61e78EvCORk&search=y&catId=1292495365&pageNo=1#anchor

全部都在里面,接下来就好办了,通过正则匹配提取参数,发送请求,xpath提取,直接上代码:

# -*- coding: utf-8 -*-
import json
import re
import timeimport scrapyclass BkSpider(scrapy.Spider):name = 'bk'allowed_domains = ['bokuts.tmall.com']# start_urls = ['https://bokuts.tmall.com/category-1292495365.htm?spm=a1z10.5-b-s.w4011-15421479631.158.3cd61e78EvCORk&search=y&catId=1292495365&pageNo=1#anchor']def start_requests(self):url = input("请输入要爬取的url")start_url = urlyield scrapy.Request(start_url,callback=self.parse)def parse(self, response):category = re.findall(r"category-(.*?).htm",response.url)[0]spm = re.findall(r"\?spm=(.*?)&search",response.url)[0]# catname = re.findall(r"catName=(.*?)&scene",response.url)[0]cat_id = re.findall(r"catId=(.*?)&pageNo",response.url)[0]pageno = re.findall(r"pageNo=(\d+)",response.url)[0]scid = cat_idprice_url = "https://bokuts.tmall.com/i/asynSearch.htm?callback=jsonp119&mid=w-15421479631-0&wid=15421479631&path=/category-{}.htm&spm={}&search=y&scene=taobao_shop&catId={}&pageNo={}&scid={}".format(category, spm,  cat_id, pageno, scid)yield scrapy.Request(price_url,callback=self.get_book_info,meta={"num": pageno})def get_book_info(self, response):num = response.meta["num"]dl_list = response.xpath("//div[@class='\\\"J_TItems\\\"']/div[@class='\\\"item4line1\\\"']/dl")[:-8]list_content = []for dl in dl_list:item = {}item["book_title"] = dl.xpath("./dd[@class='\\\"detail\\\"']/a/text()").extract_first()item["book_price"] = dl.xpath(".//div[@class='\\\"cprice-area\\\"']/span[@class='\\\"c-price\\\"']/text()").extract_first().strip()item["sale"] = dl.xpath(".//div[@class='\\\"sale-area\\\"']/span[@class='\\\"sale-num\\\"']/text()").extract_first()item["eva_count"] = dl.xpath(".//dd[@class='\\\"rates\\\"']//h4/a/span/text()").extract_first()item["detail_href"] = dl.xpath(".//dd[@class='\\\"detail\\\"']/a/@href").extract_first()[2:-3]item["detail_href"] = "https:" + item["detail_href"]list_content.append(item)for i in list_content:with open("第{}页.txt".format(num), "a", encoding="utf-8") as f:f.write(json.dumps(i,ensure_ascii=False, indent=2))next_url = response.xpath("//a[text()='下一页']/@href").extract_first()if next_url is None:returnelse:next_url = next_url[2:-1]next_url = "https:" + next_urlprint(next_url)time.sleep(5)yield scrapy.Request(next_url,callback=self.parse)

以上就是本人爬取天猫的一点经验,如有错误,欢迎指正!

python-如何爬取天猫店铺的商品信息相关推荐

  1. python爬虫爬取当当网的商品信息

    python爬虫爬取当当网的商品信息 一.环境搭建 二.简介 三.当当网网页分析 1.分析网页的url规律 2.解析网页html页面 书籍商品html页面解析 其他商品html页面解析 四.代码实现 ...

  2. python爬取天猫,python如何爬取天猫店铺商品链接?

    在使用python爬虫爬取网页时会遇到很多含有特殊符号的情况,当把链接复制到浏览器打开,发现每个节点都多了个\,直接使用response.xpath()无法定位元素,为避免定位不到元素的问题,应先对响 ...

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

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

  4. 简单使用Python爬虫爬取淘宝网页商品信息

    最近在学习爬虫,本人还是入门级的小白,自己跟着老师写了一些代码,算是自己的总结,还有一些心得,跟大家分享一下,如果不当,还请各位前辈斧正. 这是代码: # 导入库 import requests im ...

  5. 【Python】爬取国外购物网站商品信息实战

    1.项目目录 ----Project ------venv --------main.py --------brickseek.py --------database.py 2.main.py imp ...

  6. 如何用python快速爬取速卖通商品信息

    我们首先打开网页做分析 按下F12点击Network找到headers,将Cookie和User-agent复制下来,留着备用! 下面用requets做调式,能否获取到网页信息 import requ ...

  7. python爬虫爬取天猫店铺商品数据

    #!coding=utf-8 import requests import re import random import time import json from requests.package ...

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

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

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

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

最新文章

  1. vue仿今日头条_vue2.0仿今日头条开源项目
  2. [腾讯云]简单在腾讯云 CenTOS7.0 安装Nginx,Mysql(MariaDB),Memcache,解析PHP!
  3. Electron-builder打包安装程序遇到的问题解决方案
  4. SMSSMS垃圾邮件检测器的专业攻击
  5. Linux shell编程学习笔记---第三章
  6. SpringCloud(二) 生产者、消费者工程搭建与调用(下)
  7. MFC中 AfxBeginThread()的函数
  8. css为什么要用浮动_CSS问题和解决
  9. iOS程序-UIScrollView的基本使用
  10. 自定义UITabBarController以及UITabBar的分析
  11. cad字体安装_三种CAD缺失字体解决方法,让你不在为寻找字体而烦恼
  12. 医疗行业用户容灾备份方案
  13. 为何quot;矮矬穷quot;出身的成功…
  14. 这世上,真有人会陪你手握屠龙刀,杀得生活措手不及!
  15. ActiveMQ使用及原理浅析(消息队列)
  16. signal 11 (SIGSEGV), code 2 (SEGV_ACCERR)的原因和解决办法
  17. arduino控制寻迹传感器
  18. Jmeter-Beanshell取样器举例描述常用方法及使用场景
  19. powerdesinger使用ODBC在mysql中建表
  20. pycharm 中引用airtest中的air 文件

热门文章

  1. 感谢折磨你的人[三]
  2. Esp8266 进阶之路33【安全篇】细聊HmacMD5的加密方法带来的安全性,并实践在esp8266上,最大保障传输的过程的信息的安全性。(附带Demo)
  3. PXI标准– PXI规范更新总结
  4. Scratch3.0中保存项目时,建议使用的扩展名是sb3
  5. 帮百度AI干脏活累活的公司,都死了
  6. 小团队也能做DDD-中篇
  7. EPICS记录参考--计算输出记录(calcout)
  8. git: patch 是什么/ 如何用
  9. C++怎样获取当前系统时间?
  10. 抚顺同洲计算机学校,计算机专业的实习调研报告.docx