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 os模块中的isfile()和isdir()函数均返回false问题解决方法
Feb 04 Python
举例讲解Python中的死锁、可重入锁和互斥锁
Nov 05 Python
Python创建xml文件示例
Mar 22 Python
Python实现按中文排序的方法示例
Apr 25 Python
python实现停车管理系统
Nov 30 Python
kafka-python 获取topic lag值方式
Dec 23 Python
python利用JMeter测试Tornado的多线程
Jan 12 Python
selenium+python配置chrome浏览器的选项的实现
Mar 18 Python
python怎么删除缓存文件
Jul 19 Python
Python机器学习工具scikit-learn的使用笔记
Jan 28 Python
python Tkinter的简单入门教程
Apr 11 Python
python实现图片九宫格分割的示例
Apr 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实现redis数据库指定库号迁移的方法
2015/01/14 PHP
HTML 自动伸缩的表格Table js实现
2009/04/01 Javascript
javascript 三种编解码方式
2010/02/01 Javascript
jQuery ajax cache缓存问题
2010/07/01 Javascript
用JavaScript计算在UTF-8下存储字符串占用字节数
2013/08/08 Javascript
SeaJS 与 RequireJS 的差异对比
2014/12/08 Javascript
js实现从中间开始往上下展开网页窗口的方法
2015/03/02 Javascript
Nodejs实战心得之eventproxy模块控制并发
2015/10/27 NodeJs
Bootstrap入门书籍之(五)导航条、分页导航
2016/02/17 Javascript
js日期插件dateHelp获取本月、三个月、今年的日期
2016/03/07 Javascript
JS随机洗牌算法之数组随机排序
2016/03/23 Javascript
Vue.js每天必学之内部响应式原理探究
2016/09/07 Javascript
javascript学习笔记_浅谈基础语法,类型,变量
2016/09/19 Javascript
JavaScript控制浏览器全屏显示简单示例
2018/07/05 Javascript
js中数组常用方法总结(推荐)
2019/04/09 Javascript
jQuery是用来干什么的 jquery其实就是一个js框架
2021/02/04 jQuery
python 测试实现方法
2008/12/24 Python
使用Kivy将python程序打包为apk文件
2017/07/29 Python
详解Python核心对象类型字符串
2018/02/11 Python
opencv3/C++图像像素操作详解
2019/12/10 Python
python两个_多个字典合并相加的实例代码
2019/12/26 Python
Matplotlib scatter绘制散点图的方法实现
2020/01/02 Python
python TCP包注入方式
2020/05/05 Python
利用css3 translate完美实现表头固定效果
2017/02/28 HTML / CSS
联想新加坡官方网站:Lenovo Singapore
2017/10/24 全球购物
伯利陶器:Burleigh Pottery
2018/01/03 全球购物
Maison Lab荷兰:名牌Outlet购物
2018/08/10 全球购物
探索欧洲最好的品牌:Bombinate
2019/06/14 全球购物
Watchshop德国:欧洲在线手表No.1
2019/06/20 全球购物
中专生自我鉴定范文
2013/12/19 职场文书
《陶罐和铁罐》教学反思
2014/02/19 职场文书
贸易经济专业自荐书
2014/06/29 职场文书
工作所在部门证明
2014/09/21 职场文书
爱情保证书
2015/01/17 职场文书
初中政教处工作总结
2015/08/12 职场文书
简历自我评价:教师师德表现自我评价
2019/04/24 职场文书