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判断两个list是否是父子集关系的实例
May 04 Python
python 编写简单网页服务器的实例
Jun 01 Python
python中itertools模块zip_longest函数详解
Jun 12 Python
Python判断变量名是否合法的方法示例
Jan 28 Python
Python语言检测模块langid和langdetect的使用实例
Feb 19 Python
Python学习笔记之Break和Continue用法分析
Aug 14 Python
Python实现计算长方形面积(带参数函数demo)
Jan 18 Python
Python对象的属性访问过程详解
Mar 05 Python
通过实例了解Python异常处理机制底层实现
Jul 23 Python
如何用Python 加密文件
Sep 10 Python
python3实现简单飞机大战
Nov 29 Python
pycharm2021激活码使用教程(永久激活亲测可用)
Mar 30 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/01/08 PHP
php学习笔记 面向对象的构造与析构方法
2011/06/13 PHP
php中使用DOM类读取XML文件的实现代码
2011/12/14 PHP
php将数组存储为文本文件方法汇总
2015/10/28 PHP
Yii输入正确验证码却验证失败的解决方法
2017/06/06 PHP
Laravel框架模板加载,分配变量及简单路由功能示例
2018/06/11 PHP
Jquery实现页面加载时弹出对话框代码
2013/04/19 Javascript
点击弹出层外区域关闭弹出层jquery特效示例
2013/08/25 Javascript
JS嵌套函数调用上下文的问题解决
2014/03/26 Javascript
javascript实现的固定位置悬浮窗口实例
2015/04/30 Javascript
JS 全屏和退出全屏详解及实例代码
2016/11/07 Javascript
jQuery实现遮罩层登录对话框
2016/12/29 Javascript
基于javascript实现最简单选项卡切换
2017/02/01 Javascript
vue better-scroll插件使用详解
2018/01/25 Javascript
详解React-Router中Url参数改变页面不刷新的解决办法
2018/05/08 Javascript
深入剖析Node.js cluster模块
2018/05/23 Javascript
Bootstrap Table实现定时刷新数据的方法
2018/08/13 Javascript
js实现提交前对列表数据的增删改查
2020/01/16 Javascript
python 输入一个数n,求n个数求乘或求和的实例
2018/11/13 Python
python交互界面的退出方法
2019/02/16 Python
python定时复制远程文件夹中所有文件
2019/04/30 Python
Python pandas DataFrame操作的实现代码
2019/06/21 Python
Python使用sklearn库实现的各种分类算法简单应用小结
2019/07/04 Python
scikit-learn线性回归,多元回归,多项式回归的实现
2019/08/29 Python
tesserocr与pytesseract模块的使用方法解析
2019/08/30 Python
Python带参数的装饰器运行原理解析
2020/06/09 Python
Django --Xadmin 判断登录者身份实例
2020/07/03 Python
numpy中生成随机数的几种常用函数(小结)
2020/08/18 Python
如何用border-image实现文字气泡边框的示例代码
2020/01/21 HTML / CSS
新加坡网上化妆品店:Best Buy World
2018/05/18 全球购物
Hoka One One法国官网:美国专业跑鞋品牌
2018/12/29 全球购物
Hotels.com印度:酒店预订
2019/05/11 全球购物
文件中有一组整数,要求排序后输出到另一个文件中
2012/01/04 面试题
高中升旗仪式演讲稿
2014/09/09 职场文书
Go中使用gjson来操作JSON数据的实现
2022/08/14 Golang
Python  序列化反序列化和异常处理的问题小结
2022/12/24 Python