python使用sessions模拟登录淘宝的方式


Posted in Python onAugust 16, 2019

之前想爬取一些淘宝的数据,后来发现需要登录,找了很多的资料,有个使用request的sessions加上cookie来登录的,cookie的获取在登录后使用开发者工具可以找到。不过这个登录后获得的网页的代码是静态的,获取动态网页还得另寻他法,一般需要的数据可以在网页的源码中得到,但是你知道的,有些动态加载的就不是那么简单了,而且我发现这样获得的源码中,有些想要获取的数据的格式是经过改动的,比如我要某个商品的具体链接,发现并不能直接使用。 总体而言,这是一次失败的尝试,不过倒是了解到使用sessionscookies可以进到需要登录的网页,也算是一种方式吧。

记录一下失败的一次

import requests
import os
import json
from pyquery import PyQuery as pq
import re
import time
sessions = requests.session()
url = 'https://s.taobao.com/search?q=ipad'
sessions.headers['User-Agent'] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36'
sessions.headers['cookie']='miid=8428352431475518963; hng=CN***********; cna=IzulExo***************; thw=cn; __guid=15467**********; enc=Ubrfp%2******************************************************; t=5********************1e0; tracknick=%5*********3; lgc=40***3; tg=0; x=e%3D1%26p%3D*%26s%3D0%26c%3D0%26f%3D0%26g%3D0%26t%3D0%26__ll%3D-1%26_ato%3D0; cookie2=393e1f359e39e184059e8c87422bb5ce; v=0; _tb_token_=e7e035bee1ae8; _m_h5_tk=ebb49583b4434c3ff9f4bb277236a5d2_1541089384718; _m_h5_tk_enc=b0dd87431f8ade45b56bccb4982c0bf4; alitrackid=world.taobao.com; swfstore=29789; unb=3159140427; sg=374; _l_g_=Ug%3D%3D; skt=c9446f78d9091af3; cookie1=AHt5ehB%2FBw25k99NwMwTM4z3CWVA2J%2FVUVn4V3D2TMk%3D; csg=7b6476e0; uc3=vt3=F8dByRjNVxN9vRJQjTQ%3D&id2=UNGToApZ%2B2dYHA%3D%3D&nk2=sECE1uX4Wg%3D%3D&lg2=VFC%2FuZ9ayeYq2g%3D%3D; existShop=MTU0MTA4NzI2Ng%3D%3D; _cc_=Vq8l%2BKCLiw%3D%3D; dnk=%5Cu6C38%5Cu65E0%5Cu540D3; _nk_=%5Cu6C38%5Cu65E0%5Cu540D3; cookie17=UNGToApZ%2B2dYHA%'
for i in range(1):
  strs=str(i*44)
  urls=url+'&s='+strs
  html=sessions.get(urls).text
  doc=pq(html)
  doc=str(doc)
  os.chdir(r'G:\PS\PY')
  contentss=[]
  htmls=re.compile(r'p4pTags(.*?)"risk"')   
  garbage=re.compile(r'itemlist(.*?)"risk"')
  gb=garbage.findall(doc,re.S|re.M)
  finhtml=htmls.findall(doc,re.S|re.M)
  finhtml=finhtml+gb
  print(len(finhtml))
  #提取信息的正则表达式
  raw_title=r'"raw_title":"(.*?)"'
  view_price= r'"view_price":"(.*?)"' #价格
  view_fee=r'"view_fee":"(.*?)"'   #折扣
  item_loc = r'"item_loc":"(.*?)"' #地区
  view_sales = r'"view_sales":"(.*?)"' #付款人数
  comment_count = r'"comment_count":"(.*?)"' #评论数
  detail_url=r'"detail_url":"(.*?)"'   #url    
  for html in finhtml:
    rtitle=re.findall(raw_title,html)
    price=re.findall(view_price,html)
    fee=re.findall(view_fee,html)
    loc=re.findall(item_loc,html)
    sales= re.findall(view_sales,html)
    comment=re.findall(comment_count,html)
    deurl=re.findall(detail_url,html)
    for rt,p,f,l,s,c,u in zip(rtitle,price,fee,loc,sales,comment,deurl):
      contentss.append({"raw_title":rt,"view_price":p,"view_fee":f,"item_loc":l,"view_sales":s,"comment_count":c,"detail_url":u})  
  with open('ipad.json','a',encoding='utf-8') as file:
    file.write(json.dumps(contentss,indent=2,ensure_ascii=False))
  time.sleep(2)#访问间隔

总结

以上所述是小编给大家介绍的python使用sessions模拟登录淘宝,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
Python实现把json格式转换成文本或sql文件
Jul 10 Python
Python数据类型详解(二)列表
May 08 Python
Python编程实现二分法和牛顿迭代法求平方根代码
Dec 04 Python
Python基于多线程实现抓取数据存入数据库的方法
Jun 22 Python
通过PYTHON来实现图像分割详解
Jun 26 Python
树莓派极简安装OpenCv的方法步骤
Oct 10 Python
pycharm安装及如何导入numpy
Apr 03 Python
Python astype(np.float)函数使用方法解析
Jun 08 Python
Python实现上下文管理器的方法
Aug 07 Python
基于python调用jenkins-cli实现快速发布
Aug 14 Python
python 实现音频叠加的示例
Oct 29 Python
彻底弄懂Python中的回调函数(callback)
Jun 25 Python
Django错误:TypeError at / 'bool' object is not callable解决
Aug 16 #Python
Python facenet进行人脸识别测试过程解析
Aug 16 #Python
Python Web框架之Django框架Model基础详解
Aug 16 #Python
pycharm配置git(图文教程)
Aug 16 #Python
Django如何实现上传图片功能
Aug 16 #Python
Python如何调用JS文件中的函数
Aug 16 #Python
用Python批量把文件复制到另一个文件夹的实现方法
Aug 16 #Python
You might like
PHP计划任务之关闭浏览器后仍然继续执行的函数
2010/07/22 PHP
php分页查询mysql结果的base64处理方法示例
2017/05/18 PHP
PHP判断一个数组是另一个数组子集的方法详解
2017/07/31 PHP
PHP聚合式迭代器接口IteratorAggregate用法分析
2017/12/28 PHP
神奇的代码 通杀各种网站-可随意修改复制页面内容
2008/07/17 Javascript
用jquery和json从后台获得数据集的代码
2011/11/07 Javascript
更换select下拉菜单背景样式的实现代码
2011/12/20 Javascript
关于页面嵌入swf覆盖div层的问题的解决方法
2014/02/11 Javascript
jquery实现公告翻滚效果
2015/02/27 Javascript
JavaScript判断是否为数组的3种方法及效率比较
2015/04/01 Javascript
jQuery获取字符串中出现最多的数
2016/02/22 Javascript
Javascript随机标签云代码实例
2016/06/21 Javascript
javascript宿主对象之window.navigator详解
2016/09/07 Javascript
NodeJS实现客户端js加密
2017/01/09 NodeJs
jQuery代码实现实时获取时间
2017/01/29 Javascript
微信小程序搭建自己的Https服务器
2019/05/02 Javascript
Vue基础学习之项目整合及优化
2019/06/02 Javascript
Vue 实现html中根据类型显示内容
2019/10/28 Javascript
Python正则表达式匹配HTML页面编码
2015/04/08 Python
Python基础教程之tcp socket编程详解及简单实例
2017/02/23 Python
python处理csv中的空值方法
2018/06/22 Python
Python 带有参数的装饰器实例代码详解
2018/12/06 Python
python等差数列求和公式前 100 项的和实例
2020/02/25 Python
利用CSS3参考手册和CSS3代码生成工具加速来学习网页制
2012/07/11 HTML / CSS
欧洲、亚洲、非洲和拉丁美洲的度假套餐:Great Value Vacations
2019/03/30 全球购物
Groupon比利时官方网站:特卖和网上购物高达-70%
2019/08/09 全球购物
小学六一儿童节活动方案
2014/08/27 职场文书
2014年管理工作总结
2014/11/22 职场文书
2014年政协委员工作总结
2014/12/01 职场文书
表扬稿格式范文
2015/01/16 职场文书
超市采购员岗位职责
2015/04/07 职场文书
2016年国庆节假期旅游工作总结
2016/04/01 职场文书
八年级作文之友谊
2019/12/02 职场文书
Python绘制分类图的方法
2021/04/20 Python
详解如何用Python实现感知器算法
2021/06/18 Python
Redis之RedisTemplate配置方式(序列和反序列化)
2022/03/13 Redis