您好,登錄后才能下訂單哦!
怎么在Python中利用Cookies導出用戶數據?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
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:排序
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)
t = time.time() randStr = int(round(t * 1000)) tSheetName = "a_" + str(randStr) + ".xlsx" workbook = xlsxwriter.Workbook(tSheetName) worksheet = workbook.add_worksheet()
cursor = 0 picurl = '' 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)
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路徑
workbook.close()
# -*- coding: UTF-8 -*- # 批量獲取XX數據 import io import json import requests import sys import xlsxwriter import time import urllib
python常用的庫:1.requesuts;2.scrapy;3.pillow;4.twisted;5.numpy;6.matplotlib;7.pygama;8.ipyhton等。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。