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使用xauth方式登录饭否网然后发消息
Apr 11 Python
Python的subprocess模块总结
Nov 07 Python
python获取mp3文件信息的方法
Jun 15 Python
在Django框架中设置语言偏好的教程
Jul 27 Python
Python编程实现删除VC临时文件及Debug目录的方法
Mar 22 Python
Python有序查找算法之二分法实例分析
Dec 11 Python
python中使用PIL制作并验证图片验证码
Mar 15 Python
selenium在执行phantomjs的API并获取执行结果的方法
Dec 17 Python
Django学习笔记之为Model添加Action
Apr 30 Python
python 识别登录验证码图片功能的实现代码(完整代码)
Jul 03 Python
Python爬虫使用bs4方法实现数据解析
Aug 25 Python
基于Python的EasyGUI学习实践
May 07 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
世界咖啡生产者论坛呼吁:需要立即就咖啡价格采取认真行动
2021/03/06 咖啡文化
PHP gbk环境下json_dencode传送来的汉字
2012/11/13 PHP
php中curl和file_get_content的区别
2014/05/10 PHP
jquery ajax对特殊字符进行转义防止js注入使用示例
2013/11/21 Javascript
jquery移动节点实例
2015/01/14 Javascript
JavaScript学习心得之概述
2015/01/20 Javascript
Javascript实现通过选择周数显示开始日和结束日的实现代码
2016/05/30 Javascript
AngularJS 基础ng-class-even指令用法
2016/08/01 Javascript
KnockoutJS 3.X API 第四章之事件event绑定
2016/10/10 Javascript
简单实现Vue的observer和watcher
2016/12/21 Javascript
Javascript blur与click冲突解决办法
2017/01/09 Javascript
flexslider.js实现移动端轮播
2017/02/05 Javascript
js字符限制(字符截取) 一个中文汉字算两个字符
2017/09/12 Javascript
vue devtools的安装与使用教程
2018/08/08 Javascript
vue实现element-ui对话框可拖拽功能
2018/08/17 Javascript
vue+axios实现文件下载及vue中使用axios的实例
2018/09/21 Javascript
layui添加动态菜单与选项卡
2019/07/26 Javascript
微信小程序转发事件实现解析
2019/10/22 Javascript
分享Angular http interceptors 拦截器使用(推荐)
2019/11/10 Javascript
如何利用node转发请求详解
2020/09/17 Javascript
解决antd 下拉框 input [defaultValue] 的值的问题
2020/10/31 Javascript
[01:56]2014DOTA2西雅图邀请赛 MVP外卡赛老队长精辟点评
2014/07/09 DOTA
Python使用getpass库读取密码的示例
2017/10/10 Python
基于Python函数的作用域规则和闭包(详解)
2017/11/29 Python
PyQt QListWidget修改列表项item的行高方法
2019/06/20 Python
通过实例解析Python return运行原理
2020/03/04 Python
python+selenium 脚本实现每天自动登记的思路详解
2020/03/11 Python
Python getattr()函数使用方法代码实例
2020/08/10 Python
干部现实表现材料
2014/02/13 职场文书
体育课课后反思
2014/04/24 职场文书
奥巴马就职演讲稿
2014/05/15 职场文书
世界水日宣传活动总结
2015/02/09 职场文书
html+css实现赛博朋克风格按钮
2021/05/26 HTML / CSS
原生JavaScript实现简单五子棋游戏
2021/06/28 Javascript
Python连接Postgres/Mysql/Mongo数据库基本操作大全
2021/06/29 Python
HTML 里 img 元素的 src 和 srcset 属性的区别详解
2023/05/21 HTML / CSS