爬虫练习_使用scrapy爬取淘宝

时间:2024-05-19 13:30:49

使用爬虫框架scrapy爬取淘宝

一.创建项目

1.安装scrapy

pip install scrapy

2.选择一个目录开启一个scrapy项目

scrapy startproject taobao

3.新建一个名为mytaobao的爬虫

scrapy genspider mytaobao taobao.com

爬虫练习_使用scrapy爬取淘宝

爬虫练习_使用scrapy爬取淘宝


二.制定需要的内容

从web端找到几项内容

爬虫练习_使用scrapy爬取淘宝  
关注的内容

价格

收货人数

商品名

商铺名

发货地址 

详情连接

将内容写入items.py

根据提示开始写

# define the fields for your item here like: 
# name = scrapy.Field()


  class TaobaoItem(scrapy.Item):
   price = scrapy.Field()
   sales = scrapy.Field()
   title = scrapy.Field()
   nick = scrapy.Field()
   loc = scrapy.Field()
   detail_url = scrapy.Field()

开启setting.py中的item配置

爬虫练习_使用scrapy爬取淘宝

三.分析url

淘宝搜索

女装 裙

且按销量排序后的url为:


https://s.taobao.com/search?q=%E5%A5%B3%E8%A3%85+%E8%A3%99&imgfile=&js=1&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20180406&ie=utf8&sort=sale-desc



大胆的删除一些看上去没啥用的内容

https://s.taobao.com/search?q=女装+裙&sort=sale-desc&s=44



所以:

q:关键字 
sort:排序方式   
sale-desc:销量降序 
s:展示个数


为了方便管理,统一将常量放在setting.py文件中

KEY_WORDS = '女装 裙' #关键字 

PAGE_NUM = 100          #页数 

ONE_PAGE_COUNT = 44 #每页个数

key_words = self.settings['KEY_WORDS']
page_num = self.settings['PAGE_NUM']
one_page_count = self.settings['ONE_PAGE_COUNT']


爬虫练习_使用scrapy爬取淘宝

四.使用正则表达式解析

页面查看发现存在一段json

g_page_config

其中包含了所要的内容

爬虫练习_使用scrapy爬取淘宝


对其进行正则解析

爬虫练习_使用scrapy爬取淘宝

五.数据存储到文件中

在pipelines中写入存储文件的语句

爬虫练习_使用scrapy爬取淘宝

六.运行爬虫

记得关闭爬虫君子协议配置

爬虫练习_使用scrapy爬取淘宝


使用:scrapy crawl mytaobao开始运行爬虫

爬虫练习_使用scrapy爬取淘宝


爬虫练习_使用scrapy爬取淘宝