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抓取百度首页的方法
May 19 Python
Python中的localtime()方法使用详解
May 22 Python
python编程之requests在网络请求中添加cookies参数方法详解
Oct 25 Python
python逐行读写txt文件的实例讲解
Apr 03 Python
Python3内置模块之base64编解码方法详解
Jul 13 Python
由面试题加深对Django的认识理解
Jul 19 Python
python rsync服务器之间文件夹同步脚本
Aug 29 Python
在Python中使用MySQL--PyMySQL的基本使用方法
Nov 19 Python
关于Flask项目无法使用公网IP访问的解决方式
Nov 19 Python
python 中的[:-1]和[::-1]的具体使用
Feb 13 Python
Python实现鼠标自动在屏幕上随机移动功能
Mar 14 Python
Pandas之缺失数据的实现
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
又一个php 分页类实现代码
2009/12/03 PHP
php Xdebug的安装与使用详解
2013/06/20 PHP
PHP数据库链接类(PDO+Access)实例分享
2013/12/05 PHP
PHP网站建设的流程与步骤分享
2015/09/25 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
读jQuery之十一 添加事件核心方法
2011/07/31 Javascript
js实现select跳转功能代码
2014/10/22 Javascript
JQuery选择器绑定事件及修改内容的方法
2015/01/23 Javascript
浅谈js中的闭包
2015/03/16 Javascript
AngularJS基础 ng-switch 指令简单示例
2016/08/03 Javascript
Highcharts+NodeJS搭建数据可视化平台示例
2017/01/01 NodeJs
vue.js实现请求数据的方法示例
2017/02/07 Javascript
详解Vue整合axios的实例代码
2017/06/21 Javascript
如何在vue中使用ts的示例代码
2018/02/28 Javascript
Vue.js上传图片到阿里云OSS存储的方法示例
2018/12/13 Javascript
Node.js操作MongoDB数据库实例分析
2020/01/19 Javascript
小程序如何定位所在城市及发起周边搜索
2020/02/11 Javascript
Javascript幻灯片播放功能实现过程解析
2020/05/07 Javascript
[01:08:44]NB vs VP 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
关于反爬虫的一些简单总结
2017/12/13 Python
Python变量类型知识点总结
2019/02/18 Python
Python处理PDF与CDF实例
2020/02/26 Python
matplotlib 曲线图 和 折线图 plt.plot()实例
2020/04/17 Python
python中执行smtplib失败的处理方法
2020/07/01 Python
Python如何实现线程间通信
2020/07/30 Python
用HTML5 Canvas API中的clearRect()方法实现橡皮擦功能
2016/03/15 HTML / CSS
英国花园药房: The Garden Pharmacy
2017/12/28 全球购物
班级活动策划书
2014/02/06 职场文书
秋天的怀念教学反思
2014/04/28 职场文书
2015年学校工作总结范文
2015/04/20 职场文书
羊脂球读书笔记
2015/06/30 职场文书
2019年年中职场激励人心语录30条
2019/08/07 职场文书
Python函数中的不定长参数相关知识总结
2021/06/24 Python
python编程项目中线上问题排查与解决
2021/11/01 Python
Pandas数据结构之Series的使用
2022/03/31 Python
nginx日志格式分析和修改
2022/04/28 Servers