文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么在Python中利用Cookies导出用户数据

2023-06-15 02:42

关注

怎么在Python中利用Cookies导出用户数据?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

利用抓包工具或者Google浏览器调试模式拿到请求参数

Cookies参数如下:

cookies = {        'JSESSIONID': 'XXX',    'phone': 'XXX',        'password': 'XXX',        'isAuto': '0',    '    loginAccess': 'XXX'}

headers请求头信息构造:

headers = {    'Connection': 'keep-alive',    'sec-ch-ua': '"Google Chrome";v="89", "Chromium";v="89", ";Not A Brand";v="99"',   'Accept': 'application/json, text/javascript, */*; q=0.01',    'X-Requested-With': 'XMLHttpRequest',    'sec-ch-ua-mobile': '?0',    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36',    'Content-Type': 'application/json',   'Sec-Fetch-Site': 'same-origin',    'Sec-Fetch-Mode': 'cors',    'Sec-Fetch-Dest': 'empty',    'Referer': 'https://xxx.xxx.xxx',    'Accept-Language': 'zh-CN,zh;q=0.9',}

请求路径:

params = ( ('method', 'getGoodsList'))

请求参数组装:

data = '{"pageSize":1000,"pageNumber":1,"searchText":"","sortOrder":"asc","isAdvancedSearch":false}'

pageSize:每页数据数量
pageNumber:页码
searchText:搜索条件
sortOrder:排序

3.利用Requests模拟请求并获取数据

response = requests.post(   'https://xxx.xxx.xxx',     headers=headers,    params=params,     cookies=cookies,    data=data)print(response.text.encode('utf8'))res = json.loads(response.text)

4.创建Excel表格

t = time.time()randStr = int(round(t * 1000))tSheetName = "a_" + str(randStr) + ".xlsx"workbook = xlsxwriter.Workbook(tSheetName)worksheet = workbook.add_worksheet()

5.表头及数据组装

cursor = 0picurl = ''writeExcel(row=cursor)for obj in res["rows"]:        cursor += 1        picurl = ''       if obj['ImageKID']:                picurl = 'https://xxx.xxx.xxx? imageKid='+obj['ImageKID']        writeExcel(row=cursor,Description=obj['Description'], Category=obj['Category'],    Series=obj['Series'],BaseUnit=obj['BaseUnit'],Qty=obj['Qty'],    CostPrice=obj['CostPrice'],SalePrice=obj['SalePrice'],                       RetailPrice=obj['RetailPrice'],Barcode=obj['Barcode'],   Remark=obj['Remark'], ImageKID=picurl)

6.将数据写入Excel表格中

def writeExcel(row=0, Description='', Category='', Series='', BaseUnit='', Qty='', CostPrice='', SalePrice='', RetailPrice='', Barcode='', Remark='',ImageKID=''):   if row == 0:        worksheet.write(row, 0, '名称')        worksheet.write(row, 1, '货号')        worksheet.write(row, 2, '规格')        worksheet.write(row, 3, '单位')        worksheet.write(row, 4, '库存')        worksheet.write(row, 5, '成本')        worksheet.write(row, 6, '批发价')        worksheet.write(row, 7, '零售价')       worksheet.write(row, 8, '条码')        worksheet.write(row, 9, '备注')        worksheet.write(row, 10, '图片')        else:            if ImageKID!='':                    image_data = io.BytesIO(urllib.urlopen(ImageKID).read())                    worksheet.insert_image(row, 10, ImageKID, {'image_data': image_data})        worksheet.write(row, 0, Description)        worksheet.write(row, 1, Category)        worksheet.write(row, 2, Series)       worksheet.write(row, 3, BaseUnit)        worksheet.write(row, 4, Qty)        worksheet.write(row, 5, CostPrice)       worksheet.write(row, 6, SalePrice)       worksheet.write(row, 7, RetailPrice)       worksheet.write(row, 8, Barcode)        worksheet.write(row, 9, Remark)        worksheet.set_column(10, 10, 23)        worksheet.set_row(row, 150)

注意图片路径不存在的情况,否则会执行异常

write方法:

def write(self, row, col, *args):        """        Write data to a worksheet cell by calling the appropriate write_*()        method based on the type of data being passed.        Args:            row:   The cell row (zero indexed).            col:   The cell column (zero indexed).            *args: Args to pass to sub functions.        Returns:             0:    Success.            -1:    Row or column is out of worksheet bounds.            other: Return value of called method.        """        return self._write(row, col, *args)

通过set_row方法设置表格行高

def set_row(self, row, height=None, cell_format=None, options=None):        """        Set the width, and other properties of a row.        Args:            row:         Row number (zero-indexed).            height:      Row height. (optional).            cell_format: Row cell_format. (optional).            options:     Dict of options such as hidden, level and collapsed.        Returns:            0:  Success.            -1: Row number is out of worksheet bounds.......        """

通过set_column方法设置图片列宽度:

def set_column(self, first_col, last_col, width=None, cell_format=None,                   options=None):        """        Set the width, and other properties of a single column or a        range of columns.        Args:            first_col:   First column (zero-indexed).            last_col:    Last column (zero-indexed). Can be same as first_col.            width:       Column width. (optional).            cell_format: Column cell_format. (optional).            options:     Dict of options such as hidden and level.        Returns:            0:  Success.            -1: Column number is out of worksheet bounds.      ......        """

通过insert_image插入网络图片:

def insert_image(self, row, col, filename, options=None):        """        Insert an image with its top-left corner in a worksheet cell.        Args:            row:      The cell row (zero indexed).            col:      The cell column (zero indexed).            filename: Path and filename for image in PNG, JPG or BMP format.            options:  Position, scale, url and data stream of the image.        Returns:            0:  Success.            -1: Row or column is out of worksheet bounds.        """        # Check insert (row, col) without storing.        if self._check_dimensions(row, col, True, True):            warn('Cannot insert image at (%d, %d).' % (row, col))            return -1        if options is None:            options = {}        x_offset = options.get('x_offset', 0)        y_offset = options.get('y_offset', 0)        x_scale = options.get('x_scale', 1)        y_scale = options.get('y_scale', 1)        url = options.get('url', None)        tip = options.get('tip', None)        anchor = options.get('object_position', 2)        image_data = options.get('image_data', None)        description = options.get('description', None)        decorative = options.get('decorative', False)        # For backward compatibility with older parameter name.        anchor = options.get('positioning', anchor)        if not image_data and not os.path.exists(filename):            warn("Image file '%s' not found." % force_unicode(filename))            return -1        self.images.append([row, col, filename, x_offset, y_offset,                            x_scale, y_scale, url, tip, anchor, image_data,                            description, decorative])        return 0

注意insert_image(row, colunmNum, ‘xx.png', {‘url': xxx})并不能插入网络图片,只是给本地图片一个url路径

7.关闭表格

workbook.close()

8.附引入的包

# -*- coding: UTF-8 -*-# 批量获取XX数据import ioimport json import requestsimport sysimport xlsxwriterimport timeimport urllib

9.代码跑起来

怎么在Python中利用Cookies导出用户数据

python有哪些常用库

python常用的库:1.requesuts;2.scrapy;3.pillow;4.twisted;5.numpy;6.matplotlib;7.pygama;8.ipyhton等。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网行业资讯频道,感谢您对编程网的支持。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯