2.6 实战天猫数据爬取

来源:互联网 发布:js创建标签 编辑:程序博客网 时间:2024/06/15 20:40

  • 6 实战天猫数据爬取
    • 主要用到的知识点
      • 实用技巧1多级页面的抓取-callback函数
      • 实用技巧2图片的抓取-
      • 抓取过程中的常见问题cookie的处理cookie模拟登录
      • 分页
      • 完整代码参见

2.6 实战天猫数据爬取

主要用到的知识点

  1. 实用技巧1—多级页面的抓取-callback函数
  2. 实用技巧2—图片的抓取-
  3. 抓取过程中的常见问题—cookie的处理,cookie模拟登录
  4. 分页

1. 实用技巧1—多级页面的抓取-callback函数

 yield scrapy.Request(url=item["GOODS_URL"], meta={'item': item}, callback=self.parse_detail,dont_filter=True)

返回的是一个请求,参数为:

url为进一步处理的地址。meta为了进一步把对象传进去callback是指处理的函数

2. 实用技巧2—图片的抓取-

1.首先把图片地址获取

# 图片链接            try:                file_urls = div.xpath('div[@class="productImg-wrap"]/a[1]/img/@src|'                                      'div[@class="productImg-wrap"]/a[1]/img/@data-ks-lazyload').extract()[0]                item['file_urls'] = ["http:" + file_urls]            except Exception as e:                print("Error:",e)                import pdb;pdb.set_trace()

2.在settings中引入引擎

# 以下三行引入默认的图片下载器,想改可以重写它ITEM_PIPELINES = {'scrapy.pipelines.images.ImagesPipeline': 1}# 引入items的连接属性IMAGES_URLS_FIELD = 'file_urls'# 设置存入本地的地址,当前目录。IMAGES_STORE = r'./images'

3. 抓取过程中的常见问题—cookie的处理,cookie模拟登录

自己登录后,查看cookie,把cookie里面的所有参数都输入。

 def start_requests(self):  # 循环页码,就在这个函数中实现。        reqs = []   # 每个页面的request        cookies = {            'miid':'1279809970704864021',            'thw':'cn',            't':'7349beda1fac2771e1b07173a388c1a7',            'cookie2':'169e58df275871365bf763a04f83945d',            '_tb_token_':'f5836335bbbed',            'l':'As7Ol7pcpNOglmJtnYezXP/Fnq6RuZJB',            'isg':'AuTkU7_eYUo5n5WHgkykUP1IteI6RAjnXtEpK_4Ehq96qYZzJ431dp1BH7ZL',            'cna':'xxqjEU4BaTMCAXLV6R/2cfxq',            'sca':'49d5174e',            'atpsida':'b8147f8d3acd3709988ab26d_1495089785_1',            'aimx':'xxqjEYvEdQcCAXLV6R9iOoQn_1495089785',            'cad':'k95WugY3Sgew+2KIuDSUxTOnySH07xok1SSfrDICn3k=0001',            'cap':'41cf',            '_med':'dw:1366&dh:768&pw:1366&ph:768&ist:0',            'res':'scroll%3A1349*6611-client%3A1349*637-offset%3A1349*6611-screen%3A1366*768',            'pnm_cku822':'043UW5TcyMNYQwiAiwQRHhBfEF8QXtHcklnMWc%3D%7CUm5Ockt%2FR3pPe0F5QndJdCI%3D%7CU2xMHDJ7G2AHYg8hAS8XIgwsAl4%2FWTVSLFZ4Lng%3D%7CVGhXd1llXGhQbVhsVm5VYF5jVGlLcEx2SHxBf0F0QH5AekF%2FQG44%7CVWldfS0RMQ01DDQUKBMzHWxSPAIrFioSKhI4Az0YLlV7LXs%3D%7CVmhIGCUFOBgkGiMXNww3CzcXKxUuFTUPNAEhHSMYIwM5BjNlMw%3D%3D%7CV25Tbk5zU2xMcEl1VWtTaUlwJg%3D%3D',            'cq':'ccp%3D1'        }        for i in range(0, 2): # 代表从0到1页            req = scrapy.Request("https://list.tmall.com/search_product.htm?spm=a220m.1000858.0.0.wH40GN&s="+str(i*60)+"&q=%C4%D0%D7%B0&sort=d&style=g&from=nanzhuang..pc_1_suggest&suggest=0_1&type=pc#J_Filter",cookies=cookies )            reqs.append(req)        return reqs

4. 分页

def start_requests(self):  # 循环页码,就在这个函数中实现。        reqs = []   # 每个页面的request        cookies = {            'miid':'1279809970704864021',        }        for i in range(0, 2): # 代表从0到1页            req = scrapy.Request("https://list.tmall.com/search_product.htm?spm=a220m.1000858.0.0.wH40GN&s="+str(i*60)+"&q=%C4%D0%D7%B0&sort=d&style=g&from=nanzhuang..pc_1_suggest&suggest=0_1&type=pc#J_Filter",cookies=cookies )            reqs.append(req)        return reqs

完整代码参见 :

github_xqtbox_实战天猫数据爬取

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 与异性朋友聊天没话题了怎么办 快递写错地址但已经发货了怎么办 快递写错电话但已经发货了怎么办 微信添加好友功能被限制怎么办 qq号被冻结了限制解封怎么办 被别人强制拉入qq群怎么办 qq群里的图片过期了怎么办 q附近人不能关注不能发信息怎么办 qq畅聊之火掉了怎么办 打印机打印时上面空白留太多怎么办 发短信一直空格里面写0怎么办 网贷获取我新手机号通讯录怎么办 系统音频驱动异常或未安装怎么办 附近功能已屏蔽你的qq好友怎么办 新申请的qq号忘了怎么办 刚申请的qq号忘了怎么办 以前申请的qq号忘了怎么办 小孩玩手机游戏扣费了怎么办 手机qq好友头像显示不出来怎么办 qq的一些重要数据被清理怎么办 华为p9微信听筒声音小怎么办 win10我的电脑图标没了怎么办 小米5x里的微信头像不清楚怎么办 微信头像换了总是模糊怎么办 找到老公暧昧对象的微信怎么办 朋友欠我钱一直拖找借口怎么办 陌陌附近的人不按距离排序怎么办 老婆一直要管我的钱怎么办 老公不肯把钱交给老婆管怎么办 愿意和做朋友不愿意做情侣怎么办 欠信用卡碰到第三方不愿协调怎么办 qq密码忘记了申诉不回来怎么办 当你老公烦你了你该怎么办 自己有漂亮媳妇还经常想去嫖怎么办 微信号封了找不到好友解封怎么办 别人总是提起你的黑历史怎么办 换了手机微信登录不上怎么办 qq不小心清空了聊天记录怎么办 人家介绍了外地媳妇跑了怎么办 火锅想吃香菜牛肉没有签子串怎么办 想读外省大学但家人反对怎么办