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 lxml模块安装教程
Jun 02 Python
python基础教程项目五之虚拟茶话会
Apr 02 Python
django DRF图片路径问题的解决方法
Sep 10 Python
Django框架使用mysql视图操作示例
May 15 Python
python设计微型小说网站(基于Django+Bootstrap框架)
Jul 08 Python
Python使用get_text()方法从大段html中提取文本的实例
Aug 27 Python
python类的实例化问题解决
Aug 31 Python
Python3.7安装pyaudio教程解析
Jul 24 Python
python smtplib发送多个email联系人的实现
Oct 09 Python
python 通过 pybind11 使用Eigen加速代码的步骤
Dec 07 Python
python多线程和多进程关系详解
Dec 14 Python
Python 实现进度条的六种方式
Jan 06 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
通过ICQ网关发送手机短信的PHP源程序
2006/10/09 PHP
php中设置多级目录session的问题
2011/08/08 PHP
PHP生成可点击刷新的验证码简单示例
2016/05/13 PHP
PHP中empty,isset,is_null用法和区别
2017/02/19 PHP
Laravel 框架控制器 Controller原理与用法实例分析
2020/04/14 PHP
一个XML格式数据转换为图表的例子
2010/02/09 Javascript
JavaScript中也使用$美元符号来代替document.getElementById
2010/06/19 Javascript
深入分析js的冒泡事件
2014/12/05 Javascript
浅谈js中字符和数组一些基本算法题
2016/08/15 Javascript
JQuery ZTree使用方法详解
2017/01/07 Javascript
详解nodeJS之路径PATH模块
2017/05/31 NodeJs
微信小程序如何获取openid及用户信息
2018/01/26 Javascript
JavaScript中严格判断NaN的方法
2018/02/16 Javascript
用ES6写全屏滚动插件的示例代码
2018/05/02 Javascript
Vue下拉框回显并默认选中随机问题
2018/09/06 Javascript
vue项目上传Github预览的实现示例
2018/11/06 Javascript
js实现多张图片每隔一秒切换一张图片
2019/07/29 Javascript
在vue中封装的弹窗组件使用队列模式实现方法
2020/07/23 Javascript
Python2和Python3的共存和切换使用
2019/04/12 Python
wxPython绘图模块wxPyPlot实现数据可视化
2019/11/19 Python
关于Pytorch的MLP模块实现方式
2020/01/07 Python
Python 实现一行输入多个数字(用空格隔开)
2020/04/29 Python
Python3与fastdfs分布式文件系统如何实现交互
2020/06/23 Python
pyx文件 生成pyd 文件用于 cython调用的实现
2021/03/04 Python
详解html2canvas截图不能截取圆角图片的解决方案
2018/01/30 HTML / CSS
世界著名的顶级牛排:Omaha Steak(奥马哈牛排)
2016/09/20 全球购物
Linux管理员面试经常问道的相关命令
2013/04/29 面试题
大学生秋游活动方案
2014/02/17 职场文书
秸秆管理实施方案
2014/03/15 职场文书
寄语学生的话
2014/04/10 职场文书
节约能源标语
2014/06/17 职场文书
2014年入党积极分子学习三中全会思想汇报
2014/09/13 职场文书
辩护词格式
2015/05/22 职场文书
MySQL 可扩展设计的基本原则
2021/05/14 MySQL
使用Ajax实现进度条的绘制
2022/04/07 Javascript
python数字图像处理实现图像的形变与缩放
2022/06/28 Python