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实现跨文件全局变量的方法
Jul 07 Python
在Python的Django框架中编写编译函数
Jul 20 Python
Python实现多进程共享数据的方法分析
Dec 04 Python
Python基于动态规划算法解决01背包问题实例
Dec 06 Python
python实现在pandas.DataFrame添加一行
Apr 04 Python
python分数表示方式和写法
Jun 26 Python
详解python和matlab的优势与区别
Jun 28 Python
Python计算一个点到所有点的欧式距离实现方法
Jul 04 Python
Python3将jpg转为pdf文件的方法示例
Dec 13 Python
python实现密度聚类(模板代码+sklearn代码)
Apr 27 Python
浅谈keras中自定义二分类任务评价指标metrics的方法以及代码
Jun 11 Python
PyQt5结合matplotlib绘图的实现示例
Sep 15 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笔记之:初探PHPcms模块开发介绍
2013/04/26 PHP
解析PHP生成静态html文件的三种方法
2013/06/18 PHP
使用PHP curl模拟浏览器抓取网站信息
2013/10/28 PHP
php缓冲 output_buffering和ob_start使用介绍
2014/01/30 PHP
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
2016/02/15 PHP
抛弃 PHP 代价太高
2016/04/26 PHP
thinkPHP中session()方法用法详解
2016/12/08 PHP
for 循环性能比较 提高for循环的效率
2009/03/19 Javascript
js判断鼠标同时离开两个div的思路及代码
2013/05/31 Javascript
Js base64 加密解密介绍
2013/10/11 Javascript
JQuery实现倒计时按钮具体方法
2013/11/14 Javascript
常用的JavaScript验证正则表达式汇总
2013/11/26 Javascript
javascript中的self和this用法小结
2014/02/08 Javascript
jquery实现背景墙聚光灯效果示例分享
2014/03/02 Javascript
jQuery+AJAX实现遮罩层登录验证界面(附源码)
2020/09/13 Javascript
深入学习jQuery中的data()
2016/12/22 Javascript
vue中计算属性(computed)、methods和watched之间的区别
2017/07/27 Javascript
ES6 Object方法扩展的应用实例分析
2019/06/25 Javascript
前端使用crypto.js进行加密的函数代码
2020/08/16 Javascript
学习python类方法与对象方法
2016/03/15 Python
教你用Python创建微信聊天机器人
2020/03/31 Python
python3解析库lxml的安装与基本使用
2018/06/27 Python
Python3使用pandas模块读写excel操作示例
2018/07/03 Python
python实现时间o(1)的最小栈的实例代码
2018/07/23 Python
python中return如何写
2020/06/18 Python
医疗保健专业人士购物网站:Scrubs & Beyond
2017/02/08 全球购物
美国名牌手表折扣网站:Jomashop
2020/05/22 全球购物
过程装备与控制工程专业个人的求职信
2013/12/01 职场文书
法制报告会主持词
2014/04/02 职场文书
关爱老人标语
2014/06/21 职场文书
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
加强机关作风建设心得体会
2014/10/22 职场文书
学年个人总结范文
2015/03/05 职场文书
Python Pandas知识点之缺失值处理详解
2021/05/11 Python
分析ZooKeeper分布式锁的实现
2021/06/30 Java/Android
Android Studio实现带三角函数对数运算功能的高级计算器
2022/05/20 Java/Android