淘宝商品数据爬取

1.网页分析

做爬虫第一步当然是打开网页进行分析
首先打开网站以后 发现在显示的位置 没有我们想要的数据 那我们就 使用查找就可以 ctrl + f
复制一个商品的信息 看看网页源代码中有没有

现在发现数据其实是在源代码中 中有一个字典 我们只需要取出这个字典 里面的东西就都可以取出了

2.创建项目

我们要使用scrapy框架 没有安装的自行百度安装

创建项目

# scrapy startproject 项目名称
scrapy startproject taobao

创建爬虫

# scrapy genspider 爬虫名 爬取链接
scrapy genspider mytaobao https://www.taobao.com/

创建以后的项目结构应该是这样的

3.修改setting文件

修改setting文件 加入cookie

# Disable cookies (enabled by default)
COOKIES_ENABLED = False# Disable Telnet Console (enabled by default)
# TELNETCONSOLE_ENABLED = False# Override the default request headers:
DEFAULT_REQUEST_HEADERS = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8','Accept-Language': 'en',"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, li""ke Gecko) Chrome/81.0.4044.138 Safari/537.36","Cookie": "t=f18d672f5f02333283361f7a027faf6a; cna=pfevF4KruwMCATFGNZqulgP/; cookie2=15ddfbbb62a80754706e020499dd1e73; v=0; _samesite_flag_=true; sgcookie=EINz448jeiIKB8WGxzs9N; uc3=id2=UNDVc8%2F7VdzE9Q%3D%3D&lg2=Vq8l%2BKCLz3%2F65A%3D%3D&nk2=0%2BGi4p5HRSmLlP4%3D&vt3=F8dCufTFCNSqkiy4xCI%3D; csg=72aefe12; lgc=%5Cu554A941826670; dnk=%5Cu554A941826670; skt=3860c595dca8d168; existShop=MTU5NzcxMDE4OQ%3D%3D; uc4=nk4=0%400VrwPsxHxKlIRxHYn8ykawwoZ9uFVQ%3D%3D&id4=0%40UgclHutHCO6ZuzWz2MpkPDjGN4DT; tracknick=%5Cu554A941826670; _cc_=V32FPkk%2Fhw%3D%3D; enc=Cb6iMnjgmA9xnM3tVujqJ9wsNaWy5aqhGOIdZ8X1hEjHsNwahsNbxuAaBm%2B0UgqwdOl7ZGHdobezDfdX8fdEIA%3D%3D; mt=ci=1_1; thw=cn; hng=CN%7Czh-CN%7CCNY%7C156; alitrackid=www.taobao.com; lastalitrackid=www.taobao.com; _m_h5_tk=798da7f33bdf9cb44e2c7d98ce2bdb39_1597840452252; _m_h5_tk_enc=fe629ed25401362d32eb5661ee558ee1; _tb_token_=e518fe307f878; uc1=cookie21=UtASsssmeWzt&cookie14=UoTV6yHCSQX2uw%3D%3D&cookie16=W5iHLLyFPlMGbLDwA%2BdvAGZqLg%3D%3D&existShop=false&pas=0; _uab_collina=159783978023357089252779; x5sec=7b227365617263686170703b32223a226637393930633138333334643634356630393863363866303562383962626563434b4f7a39506b46454c7661382b534f685a537a42686f4d4d7a41784d5467324f4467794d547378227d; JSESSIONID=81ED84AB340E7E67228ACDA5715389D8; isg=BHZ2n7zRNfwll8EU9uMJSqY0x6p4l7rRV0w-0eBfaNn0Ixa9SCPY4dXSP_9Pi7Lp; l=eBOQeAxlOI8AcCX-BOfZnurza77TIIRAguPzaNbMiOCPO25p5CjRWZuI2-T9CnGVh6jBR3oPlnYkBeYBc3K-nxv92j-la6kmn; tfstk=ctjdB7tTXRHL9wvO3wUMF2PMVnwGZmU9a2Om2-IUleEQ2IoRi5scDW5adKGpXRC.."}

4.修改item文件

现在修改一下item.py 将你需要的字段添加进去

import scrapyclass TaobaoItem(scrapy.Item):# 店铺名shop_name = scrapy.Field()# 商品标题title = scrapy.Field()# 价格price = scrapy.Field()# 销量buy_num = scrapy.Field()# 地址address = scrapy.Field()# 图片链接pic_url = scrapy.Field()# 详情链接detail_url = scrapy.Field()

5.修改爬虫文件

打开mytaobao.py 修改里面的内容 这个文件就是我们的爬虫文件
这个是这个爬虫中所有导入的第三方库

import json
import re
from pprint import pprint
from urllib import parse
from taobao.items import TaobaoItem
from taobao.settings import *import scrapy
import scrapyclass MytaobaoSpider(scrapy.Spider):name = 'mytaobao'allowed_domains = ['https://www.taobao.com']# 将搜索后的链接替换到列表中start_urls = ['https://s.taobao.com/search?q=%E8%A3%99%E5%AD%90&sort=sale-desc&s=44']def parse(self, response):pass

现在开始重写parse方法 使用正则取出刚刚页面中的 g_page_config

    def parse(self, response):# 取出后转换为字典goods_data_dict = json.loads(re.search("g_page_config = ({.*?});", response.text).group(1))# 取出想要的具体内容(为列表)goods_list = goods_data_dict.get("mods").get('itemlist').get('data').get("auctions")# 循环刚刚得到的列表 取出数据保存到刚刚修改的item.py 存储对象中for goods in goods_list:item = TaobaoItem()item["shop_name"] = goods.get("nick")item["title"] = goods.get("raw_title")item["address"] = goods.get("item_loc")item["price"] = goods.get('view_price')item["buy_num"] = goods.get("view_sales")item["pic_url"] = 'http:' + str(goods.get("pic_url"))item["detail_url"] = 'http:' + str(goods.get("detail_url"))print("-+-" * 30)pprint(item)# 返回数据yield item

这就是获取到一页的数据

5.运行代码

使用scrapy crawl mytaobao 运行文件
一定要查看当前路径有我们要运行的文件
现在只要实现翻页就可以了

# 定义一个变量在类中
now_page = 1# 在刚刚返回对象下面写
self.now_page += 1
if self.now_page < 5:url = "https://s.taobao.com/search?q=%E8%A3%99%E5%AD%90&sort=sale-desc&s{}".format(self.now_page * 44)print("-" * 80)print(url)print("-" * 80)yield scrapy.Request(url=url, callback=self.parse)

优化一下代码 在setting中定义

# 修改打印日志等级 关掉一些你看了也看不懂的东西
LOG_LEVEL = 'ERROR'# 三个变量 会在爬虫文件中用得到
KEY_WORDS = "裙子"
PAGE_NUM = 3
ONE_PAGE_COUNT = 44

因为中文不会直接出现在url中 所以需要一个库来进行转码

class MytaobaoSpider(scrapy.Spider):name = 'mytaobao'allowed_domains = ['taobao.com']# 添加的转码方法key_word = parse.quote(KEY_WORDS, ' ').replace(' ', "+")# 将这个url与setting文件中的三个变量进行拼接start_urls = ['https://s.taobao.com/search?q={}&sort=sale-desc&s={}'.format(key_word, ONE_PAGE_COUNT)]
# ---------------------------------------------------------
# 修改一下刚刚翻页的代码
if self.now_page < self.settings["PAGE_NUM"]:url = "https://s.taobao.com/search?q={}&sort=sale-desc&s={}". \format(self.key_word, self.now_page * ONE_PAGE_COUNT)print("-" * 80)print(url)print("-" * 80)

这要是还不会那我真的没办法了

看不懂别做爬虫-----python scrapy爬取淘宝相关推荐

  1. Python爬虫学习之爬取淘宝搜索图片

    Python爬虫学习之爬取淘宝搜索图片 准备工作 因为淘宝的反爬机制导致Scrapy不能使用,所以我这里是使用selenium来获取网页信息,并且通过lxml框架来提取信息. selenium.lxm ...

  2. python爬虫——用selenium爬取淘宝商品信息

    python爬虫--用selenium爬取淘宝商品信息 1.附上效果图 2.淘宝网址https://www.taobao.com/ 3.先写好头部 browser = webdriver.Chrome ...

  3. Python + selenium 爬取淘宝商品列表及商品评论 2021-08-26

    Python + selenium 爬取淘宝商品列表及商品评论[2021-08-26] 主要内容 登录淘宝 获取商品列表 获取评论信息 存入数据库 需要提醒 主要内容 通过python3.8+ sel ...

  4. python爬虫淘宝手机_【Python3 爬虫】14_爬取淘宝上的手机图片

    现在我们想要使用爬虫爬取淘宝上的手机图片,那么该如何爬取呢?该做些什么准备工作呢? 首先,我们需要分析网页,先看看网页有哪些规律 我们可以看到左侧是主题市场,将鼠标移动到[女装/男装/内衣]这一栏目, ...

  5. Python爬虫实战(5)-爬取淘宝网服装图片(Selenium+Firefox)

    前言 今天我们巩固一下前面学过的知识,通过Selenium+Firefox实现模拟浏览器并自动翻页,爬取图片并写入本地文件中. 以搜索"女装"为例,自动爬取"女装&quo ...

  6. Python requests爬取淘宝商品信息

    作者:achen 联系方式:wh909077093 这里记一下大概的思路以及实现方法,有基础的小伙伴看了基本就能实现了,如果有业务需要可以联系我哈哈哈哈哈哈 本文代码参考猪哥66的思路 项目内容 指定 ...

  7. Python入门--爬取淘宝评论并生成词云

    Python爬取淘宝评论并生成词云 最新修改于2021/04/01 所需相关Python第三方库(目前最新版本即可) 推荐使用Anaconda,其使用十分方便.快捷. requests库 json库 ...

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

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

  9. 吃货们看好了!python+selenium爬取淘宝美食

    前言 今天为大家介绍一个利用Python的selenium打开浏览器的方式来爬去淘宝美食,这个小案例涵盖了selenium的基本知识点,如何打开浏览器以及关键字的搜索 导入第三方库 打开浏览器 搜索功 ...

最新文章

  1. SWFTools PDF转换为SWF
  2. 在NamedParameterJdbcTemplate中使用like查询
  3. 在github上面下载文件夹的方法666
  4. 新一届暑期积分赛题目记录
  5. linux htb 源代码,LINUX TC:HTB相关源码
  6. Easyui Tree 异步加载实例
  7. 4.1 SE38数据类型
  8. Java程序员如何选择未来的职业路线
  9. Java基础(静态static)
  10. 开发工具总结(6)之Android Studio模板配置详解(提高开发效率必备技能)
  11. win7录屏_win7电脑怎么录屏?这个实用工具给你答案
  12. 副业做淘宝可以么?淘宝可以当做副业来做吗?
  13. 电子邮件邮箱怎么设置签名?手机邮箱签名设置攻略
  14. 思科 终端服务器的配置
  15. AES200 软件用户手册
  16. 主板显卡服务器维修,【转】电脑主板待机供电和显卡供电电路的维修
  17. sinc函数卷积_11-2   Sinc 函数与矩形脉冲
  18. 20个免费的网络电话
  19. 米老师验收ITOOjava5.0------米老师语录
  20. 【中英文论文写作——图片和表格】

热门文章

  1. Unity 配合Wallpaper Engine工具,实现电脑桌面壁纸游戏
  2. 行人重识别论文阅读2-视频中基于时空相关性和拓扑学习的行人重识别(CTL)
  3. GWAS - PRS多基因风险评分计算学习笔记
  4. java两个成语交叉,形容相互交叉的成语-交叉出现的成语-互相交叉在一起的成语...
  5. Matlab:干涉条纹骨化算法|二值化|滤波|去毛刺
  6. 南京工业大学研究生计算机,南京工业大学计算机研究生每年录取要多少分
  7. PyTorch + Ray Tune 调参
  8. xiugai.dizhi.py
  9. 数值微分法(DDA)详解
  10. 智慧水利:水库水文监测系统