python-如何爬取天猫店铺的商品信息
**
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-如何爬取天猫店铺的商品信息相关推荐
- python爬虫爬取当当网的商品信息
python爬虫爬取当当网的商品信息 一.环境搭建 二.简介 三.当当网网页分析 1.分析网页的url规律 2.解析网页html页面 书籍商品html页面解析 其他商品html页面解析 四.代码实现 ...
- python爬取天猫,python如何爬取天猫店铺商品链接?
在使用python爬虫爬取网页时会遇到很多含有特殊符号的情况,当把链接复制到浏览器打开,发现每个节点都多了个\,直接使用response.xpath()无法定位元素,为避免定位不到元素的问题,应先对响 ...
- python +selenium 爬取淘宝网商品信息
前几天用python爬取豆瓣关于电影<长城>的影评,发现豆瓣的网页是静态的,心中一阵窃喜.以为对于动态网页了解的不是太多.但是主要是用cookie加headers爬取的.效果还不错,爬取了 ...
- 简单使用Python爬虫爬取淘宝网页商品信息
最近在学习爬虫,本人还是入门级的小白,自己跟着老师写了一些代码,算是自己的总结,还有一些心得,跟大家分享一下,如果不当,还请各位前辈斧正. 这是代码: # 导入库 import requests im ...
- 【Python】爬取国外购物网站商品信息实战
1.项目目录 ----Project ------venv --------main.py --------brickseek.py --------database.py 2.main.py imp ...
- 如何用python快速爬取速卖通商品信息
我们首先打开网页做分析 按下F12点击Network找到headers,将Cookie和User-agent复制下来,留着备用! 下面用requets做调式,能否获取到网页信息 import requ ...
- python爬虫爬取天猫店铺商品数据
#!coding=utf-8 import requests import re import random import time import json from requests.package ...
- python使用requests库爬取淘宝指定商品信息
python使用requests库爬取淘宝指定商品信息 在搜索栏中输入商品 通过F12开发者工具抓包我们知道了商品信息的API,同时发现了商品数据都以json字符串的形式存储在返回的html内 解析u ...
- 用Python爬取淘宝网商品信息
用Python爬取淘宝网商品信息 转载请注明出处 网购时经常会用到淘宝网 点我去淘宝但淘宝网上的商品琳琅满目,于是我参照中国大学 MOOC的代码写了一个爬取淘宝网商品信息的程序 代码如下: impor ...
最新文章
- vue仿今日头条_vue2.0仿今日头条开源项目
- [腾讯云]简单在腾讯云 CenTOS7.0 安装Nginx,Mysql(MariaDB),Memcache,解析PHP!
- Electron-builder打包安装程序遇到的问题解决方案
- SMSSMS垃圾邮件检测器的专业攻击
- Linux shell编程学习笔记---第三章
- SpringCloud(二) 生产者、消费者工程搭建与调用(下)
- MFC中 AfxBeginThread()的函数
- css为什么要用浮动_CSS问题和解决
- iOS程序-UIScrollView的基本使用
- 自定义UITabBarController以及UITabBar的分析
- cad字体安装_三种CAD缺失字体解决方法,让你不在为寻找字体而烦恼
- 医疗行业用户容灾备份方案
- 为何quot;矮矬穷quot;出身的成功…
- 这世上,真有人会陪你手握屠龙刀,杀得生活措手不及!
- ActiveMQ使用及原理浅析(消息队列)
- signal 11 (SIGSEGV), code 2 (SEGV_ACCERR)的原因和解决办法
- arduino控制寻迹传感器
- Jmeter-Beanshell取样器举例描述常用方法及使用场景
- powerdesinger使用ODBC在mysql中建表
- pycharm 中引用airtest中的air 文件
热门文章
- 感谢折磨你的人[三]
- Esp8266 进阶之路33【安全篇】细聊HmacMD5的加密方法带来的安全性,并实践在esp8266上,最大保障传输的过程的信息的安全性。(附带Demo)
- PXI标准– PXI规范更新总结
- Scratch3.0中保存项目时,建议使用的扩展名是sb3
- 帮百度AI干脏活累活的公司,都死了
- 小团队也能做DDD-中篇
- EPICS记录参考--计算输出记录(calcout)
- git: patch 是什么/ 如何用
- C++怎样获取当前系统时间?
- 抚顺同洲计算机学校,计算机专业的实习调研报告.docx