當前位置:首頁 » 編程語言 » python爬取app

python爬取app

發布時間: 2023-07-03 15:04:25

『壹』 如何進行手機APP的數據爬取

python爬蟲手機的步驟:

1. 下載fiddler抓包工具

2. 設置fiddler

這里有兩點需要說明一下。

設置允許抓取HTTPS信息包

操作很簡單,打開下載好的fiddler,找到 Tools -> Options,然後再HTTPS的工具欄下勾選Decrpt HTTPS traffic,在新彈出的選項欄下勾選Ignore server certificate errors。

設置允許外部設備發送HTTP/HTTPS到fiddler

相同的,在Connections選項欄下勾選Allow remote computers to connect,並記住上面的埠號8888,後面會使用到。

好了,需要的fiddler設置就配置完成了。

3. 設置手機端

設置手機端之前,我們需要記住一點:電腦和手機需要在同一個網路下進行操作。

可以使用wifi或者手機熱點等來完成。

假如你已經讓電腦和手機處於同一個網路下了,這時候我們需要知道此網路的ip地址,可以在命令行輸入ipconfig簡單的獲得,如圖。

好了,下面我們開始手機端的設置。

手機APP的抓取操作對於Android和Apple系統都可用,博主使用的蘋果系統,在此以蘋果系統為例。

進入到手機wifi的設置界面,選擇當前連接網路的更多信息,在蘋果中是一個嘆號。然後在最下面你會看到HTTP代理的選項,點擊進入。

進入後,填寫上面記住的ip地址和埠號,確定保存。

4. 下載fiddler安全證書

在手機上打開瀏覽器輸入一個上面ip地址和埠號組成的url:http://192.168.43.38:8888,然後點擊FiddlerRoot certificate下載fiddler證書。

以上就簡單完成了所有的操作,最後我們測試一下是否好用。

5. 手機端測試

就以知乎APP為例,在手機上打開 知乎APP。下面是電腦上fiddler的抓包結果。

結果沒有問題,抓到信息包。然後就可以使用我們分析網頁的方法來進行後續的操作了。

『貳』 使用Appium爬取淘寶App數據

Appium選擇了Client/Server的設計模式,Server可以在OSX、Windows以及Linux系統上運行,Client支持Ruby、Python、Java、PHP、C#、JavaScript等語言的實現。

本教程以MacBook Pro通過Python程序控制Android系統的淘寶App為例,因為Appium依賴Android SDK,Android SDK需要Java環境,所以所需環境如下:

pc端和移動端的連接有兩種方式USB連接和無線連接

更多命令:官方教程

程序第一次運行的時候,會在手機安裝3個app,一定要同意安裝,只有Appium Settings在桌面有圖標

Android SDK官方教程
Appium官方教程
Appium新手入門

『叄』 python怎麼抓取微信閱

抓取微信公眾號的文章

一.思路分析

目前所知曉的能夠抓取的方法有:

1、微信APP中微信公眾號文章鏈接的直接抓取(http://mp.weixin.qq.com/s?__biz=MjM5MzU4ODk2MA==&mid=2735446906&idx=1&sn=&scene=0#rd)


2、通過微信合作方搜狗搜索引擎(http://weixin.sogou.com/),發送相應請求來間接抓取

第1種方法中,這種鏈接不太好獲取,而且他的規律不是特別清晰。

因此本文採用的是方法2----通過給 weixin.sogou.com 發送即時請求來實時解析抓取數據並保存到本地。

二.爬取過程

1、首先在搜狗的微信搜索頁面測試一下,這樣能夠讓我們的思路更加清晰


在搜索引擎上使用微信公眾號英文名進行「搜公眾號」操作(因為公眾號英文名是公眾號唯一的,而中文名可能會有重復,同時公眾號名字一定要完全正確,不然可能搜到很多東西,這樣我們可以減少數據的篩選工作,只要找到這個唯一英文名對應的那條數據即可),即發送請求到'http://weixin.sogou.com/weixin?type=1&query=%s&ie=utf8&_sug_=n&_sug_type_= ' % 'python',並從頁面中解析出搜索結果公眾號對應的主頁跳轉鏈接。

2.獲取主頁入口內容

使用request , urllib,urllib2,或者直接使用webdriver+phantomjs等都可以

這里使用的是request.get()的方法獲取入口網頁內容

[python]view plain

  • #爬蟲偽裝頭部設置

  • self.headers={'User-Agent':'Mozilla/5.0(WindowsNT6.3;WOW64;rv:51.0)Gecko/20100101Firefox/51.0'}

  • #設置操作超時時長

  • self.timeout=5

  • #爬蟲模擬在一個request.session中完成

  • self.s=requests.Session()


  • [python]view plain

  • #搜索入口地址,以公眾為關鍵字搜索該公眾號

  • defget_search_result_by_keywords(self):

  • self.log('搜索地址為:%s'%self.sogou_search_url)

  • returnself.s.get(self.sogou_search_url,headers=self.headers,timeout=self.timeout).content

  • 3.獲取公眾號地址

    從獲取到的網頁內容中,得到公眾號主頁地址, 這一步驟有很多方法, beautifulsoup、webdriver,直接使用正則,pyquery等都可以

    這里使用的是pyquery的方法來查找公眾號主頁入口地址

    [python]view plain

  • #獲得公眾號主頁地址

  • defget_wx_url_by_sougou_search_html(self,sougou_search_html):

  • doc=pq(sougou_search_html)

  • #printdoc('p[class="tit"]')('a').attr('href')

  • #printdoc('div[class=img-box]')('a').attr('href')

  • #通過pyquery的方式處理網頁內容,類似用beautifulsoup,但是pyquery和jQuery的方法類似,找到公眾號主頁地址

  • returndoc('div[class=txt-box]')('p[class=tit]')('a').attr('href')

  • 4.獲取公眾號主頁的文章列表

    首先需要載入公眾號主頁,這里用的是phantomjs+webdriver, 因為這個主頁的內容需要JS 渲染載入,採用之前的方法只能獲得靜態的網頁內容

    [python]view plain

  • #使用webdriver載入公眾號主頁內容,主要是js渲染的部分

  • defget_selenium_js_html(self,url):

  • browser=webdriver.PhantomJS()

  • browser.get(url)

  • time.sleep(3)

  • #執行js得到整個頁面內容

  • html=browser.execute_script("returndocument.documentElement.outerHTML")

  • returnhtml

  • 得到主頁內容之後,獲取文章列表,這個文章列表中有我們需要的內容

    [python]view plain

  • #獲取公眾號文章內容

  • defparse_wx_articles_by_html(self,selenium_html):

  • doc=pq(selenium_html)

  • print'開始查找內容msg'

  • returndoc('div[class="weui_media_boxappmsg"]')

  • #有的公眾號僅僅有10篇文章,有的可能多一點

  • #returndoc('div[class="weui_msg_card"]')#公眾號只有10篇文章文章的

  • 5.解析每一個文章列表,獲取我們需要的信息

    6.處理對應的內容

    包括文章名字,地址,簡介,發表時間等

    7.保存文章內容

    以html的格式保存到本地

    同時將上一步驟的內容保存成excel 的格式

    8.保存json數據

    這樣,每一步拆分完,爬取公眾號的文章就不是特別難了。

    三、源碼

    第一版源碼如下:

    [python]view plain

  • #!/usr/bin/python

  • #coding:utf-8

  • importsys

  • reload(sys)

  • sys.setdefaultencoding('utf-8')

  • fromurllibimportquote

  • frompyqueryimportPyQueryaspq

  • fromseleniumimportwebdriver

  • importrequests

  • importtime

  • importre

  • importjson

  • importos

  • classweixin_spider:

  • def__init__(self,kw):

  • '構造函數'

  • self.kw=kw

  • #搜狐微信搜索鏈接

  • #self.sogou_search_url='http://weixin.sogou.com/weixin?type=1&query=%s&ie=utf8&_sug_=n&_sug_type_='%quote(self.kw)

  • self.sogou_search_url='http://weixin.sogou.com/weixin?type=1&query=%s&ie=utf8&s_from=input&_sug_=n&_sug_type_='%quote(self.kw)

  • #爬蟲偽裝

  • self.headers={'User-Agent':'Mozilla/5.0(WindowsNT10.0;WOW64;rv:47.0)Gecko/20100101FirePHP/0refox/47.0FirePHP/0.7.4.1'}

  • #操作超時時長

  • self.timeout=5

  • self.s=requests.Session()

  • defget_search_result_by_kw(self):

  • self.log('搜索地址為:%s'%self.sogou_search_url)

  • returnself.s.get(self.sogou_search_url,headers=self.headers,timeout=self.timeout).content

  • defget_wx_url_by_sougou_search_html(self,sougou_search_html):

  • '根據返回sougou_search_html,從中獲取公眾號主頁鏈接'

  • doc=pq(sougou_search_html)

  • #printdoc('p[class="tit"]')('a').attr('href')

  • #printdoc('div[class=img-box]')('a').attr('href')

  • #通過pyquery的方式處理網頁內容,類似用beautifulsoup,但是pyquery和jQuery的方法類似,找到公眾號主頁地址

  • returndoc('div[class=txt-box]')('p[class=tit]')('a').attr('href')

  • defget_selenium_js_html(self,wx_url):

  • '執行js渲染內容,並返回渲染後的html內容'

  • browser=webdriver.PhantomJS()

  • browser.get(wx_url)

  • time.sleep(3)

  • #執行js得到整個dom

  • html=browser.execute_script("returndocument.documentElement.outerHTML")

  • returnhtml

  • defparse_wx_articles_by_html(self,selenium_html):

  • '從selenium_html中解析出微信公眾號文章'

  • doc=pq(selenium_html)

  • returndoc('div[class="weui_msg_card"]')

  • defswitch_arctiles_to_list(self,articles):

  • '把articles轉換成數據字典'

  • articles_list=[]

  • i=1

  • ifarticles:

  • forarticleinarticles.items():

  • self.log(u'開始整合(%d/%d)'%(i,len(articles)))

  • articles_list.append(self.parse_one_article(article))

  • i+=1

  • #break

  • returnarticles_list

  • defparse_one_article(self,article):

  • '解析單篇文章'

  • article_dict={}

  • article=article('.weui_media_box[id]')

  • title=article('h4[class="weui_media_title"]').text()

  • self.log('標題是:%s'%title)

  • url='http://mp.weixin.qq.com'+article('h4[class="weui_media_title"]').attr('hrefs')

  • self.log('地址為:%s'%url)

  • summary=article('.weui_media_desc').text()

  • self.log('文章簡述:%s'%summary)

  • date=article('.weui_media_extra_info').text()

  • self.log('發表時間為:%s'%date)

  • pic=self.parse_cover_pic(article)

  • content=self.parse_content_by_url(url).html()

  • contentfiletitle=self.kw+'/'+title+'_'+date+'.html'

  • self.save_content_file(contentfiletitle,content)

  • return{

  • 'title':title,

  • 'url':url,

  • 'summary':summary,

  • 'date':date,

  • 'pic':pic,

  • 'content':content

  • }

  • defparse_cover_pic(self,article):

  • '解析文章封面圖片'

  • pic=article('.weui_media_hd').attr('style')

  • p=re.compile(r'background-image:url(.∗?)')

  • rs=p.findall(pic)

  • self.log('封面圖片是:%s'%rs[0]iflen(rs)>0else'')

  • returnrs[0]iflen(rs)>0else''

  • defparse_content_by_url(self,url):

  • '獲取文章詳情內容'

  • page_html=self.get_selenium_js_html(url)

  • returnpq(page_html)('#js_content')

  • defsave_content_file(self,title,content):

  • '頁面內容寫入文件'

  • withopen(title,'w')asf:

  • f.write(content)

  • defsave_file(self,content):

  • '數據寫入文件'

  • withopen(self.kw+'/'+self.kw+'.txt','w')asf:

  • f.write(content)

  • deflog(self,msg):

  • '自定義log函數'

  • printu'%s:%s'%(time.strftime('%Y-%m-%d%H:%M:%S'),msg)

  • defneed_verify(self,selenium_html):

  • '有時候對方會封鎖ip,這里做一下判斷,檢測html中是否包含id=verify_change的標簽,有的話,代表被重定向了,提醒過一陣子重試'

  • returnpq(selenium_html)('#verify_change').text()!=''

  • defcreate_dir(self):

  • '創建文件夾'

  • ifnotos.path.exists(self.kw):

  • os.makedirs(self.kw)

  • defrun(self):

  • '爬蟲入口函數'

  • #Step0:創建公眾號命名的文件夾

  • self.create_dir()

  • #Step1:GET請求到搜狗微信引擎,以微信公眾號英文名稱作為查詢關鍵字

  • self.log(u'開始獲取,微信公眾號英文名為:%s'%self.kw)

  • self.log(u'開始調用sougou搜索引擎')

  • sougou_search_html=self.get_search_result_by_kw()

  • #Step2:從搜索結果頁中解析出公眾號主頁鏈接

  • self.log(u'獲取sougou_search_html成功,開始抓取公眾號對應的主頁wx_url')

  • wx_url=self.get_wx_url_by_sougou_search_html(sougou_search_html)

  • self.log(u'獲取wx_url成功,%s'%wx_url)

  • #Step3:Selenium+PhantomJs獲取js非同步載入渲染後的html

  • self.log(u'開始調用selenium渲染html')

  • selenium_html=self.get_selenium_js_html(wx_url)

  • #Step4:檢測目標網站是否進行了封鎖

  • ifself.need_verify(selenium_html):

  • self.log(u'爬蟲被目標網站封鎖,請稍後再試')

  • else:

  • #Step5:使用PyQuery,從Step3獲取的html中解析出公眾號文章列表的數據

  • self.log(u'調用selenium渲染html完成,開始解析公眾號文章')

  • articles=self.parse_wx_articles_by_html(selenium_html)

  • self.log(u'抓取到微信文章%d篇'%len(articles))

  • #Step6:把微信文章數據封裝成字典的list

  • self.log(u'開始整合微信文章數據為字典')

  • articles_list=self.switch_arctiles_to_list(articles)

  • #Step7:把Step5的字典list轉換為Json

  • self.log(u'整合完成,開始轉換為json')

  • data_json=json.mps(articles_list)

  • #Step8:寫文件

  • self.log(u'轉換為json完成,開始保存json數據到文件')

  • self.save_file(data_json)

  • self.log(u'保存完成,程序結束')

  • #main

  • if__name__=='__main__':

  • gongzhonghao=raw_input(u'輸入要爬取的公眾號')

  • ifnotgongzhonghao:

  • gongzhonghao='python6359'

  • weixin_spider(gongzhonghao).run()

  • 第二版代碼:

    對代碼進行了一些優化和整改,主要:

    1.增加了excel存貯

    2.對獲取文章內容規則進行修改

    3.豐富了注釋

    本程序已知缺陷: 如果公眾號的文章內容包括視視頻,可能會報錯。

    [python]view plain

  • #!/usr/bin/python

  • #coding:utf-8

『肆』 4種Python爬蟲(3. 微信小程序,如,超級猩猩)

目錄:
1. PC網頁爬蟲
2. H5網頁爬蟲
3. 微信小程序爬蟲
4. 手機APP爬蟲

爬取超級猩猩的課表,該平台僅提供了微信小程序這一個途徑,前面兩種針對html網頁的爬取方式都不再適用。

採用抓包分析是我們制定方案的第一步。

我用的Mac電腦,fiddler只有一個簡化版,所以另找了Charles這個類似的軟體。啟動Charles的代理,在手機WIFI中設置好對應的代理就可以開抓了。但是,抓到的https包的內容都是亂碼,咋辦?

Charles中提供了ssl證書,在手機端安裝證書即可。推薦使用iPhone,直接安裝描述文件即可。Android手機必須使用系統版本在7.0以下的才行,7.0以上還需要反編譯什麼的,太麻煩了。

很容易的定位到了超級猩猩微信小程序載入課表的後台介面。拿這個URL在瀏覽器里訪問試試,直接返回了json結果!超級猩猩很友好!

提取對應的URL,放到瀏覽器中驗證,也可以支持返回json包,剩下就是分析一下這個json的數據結構,按照需要的方式導出了。

直接通過介面的爬取效率非常高,幾秒鍾就拉取了全國各個門店的排課,相當舒心。(下圖的錄屏沒有進行加速)

最後一個挑戰就是對只有Android/iOS的APP端應用數據的爬取。請看下一章

請點擊: <下一頁>

『伍』 爬取某筆公考app公基題庫的操作

最近在准備上岸,備考中需做大量的練習,手機APP讓練習無處不在,但有個缺點,就是每次只能練習10-20道題目,不能用題海戰術,海量做題。能不能把網站的題庫及解析都弄下來,在本地電腦上做題呢?以下是我的思路:1、分析並爬取手機軟體的題庫;2、調整好格式存入xls文件中;3、導入PC版可自定義的考試系統中(如教之初考試系統免費版);4、自行設置考試模式,海量練習。

倒騰了兩天,終於搞定,後續再更新文章!

涉及到幾個點。

1、關於手機網路數據的分析,我是用Fiddler 4進行的分析。

2、關於excel表格的操控,之前想用xlwings模塊,後因沒裝office,用的是wps2013政府閹割版,無法操控,後改用xlrd、xlutils、shutil、os模塊自己寫了一個excel操縱類對象,發現還是有問題,後卸載閹割版wps,換了wps2016最新版的,就可以操作了。後來也沒換xlwings模塊了,將就著用自寫模塊。 大坑:xlrd模塊好像不支持中文路徑,全部換用英文路徑,最後再把文件夾及文件名轉換成中文的。

3、題庫分類保存。

1、Fiddler抓包手機APP的網路請求

Fiddler是一款非常流行並且實用的http抓包工具,它的原理是在本機開啟了一個http的代理伺服器,然後它會轉發所有的http請求和響應,不僅如此,它還可以支持請求重放等一些高級功能。顯然它是可以支持對手機應用進行http抓包的。

設置在同一區域網下電腦端Fiddler抓取手機APP應用網路請求的步驟:

(1)電腦端啟動Fiddler,打開菜單欄中的 Tools > Fiddler Options,打開「Fiddler Options」對話框。

(2)在Fiddler Options」對話框切換到「Connections」選項卡,然後勾選「Allow romote computers to connect」後面的復選框,然後點擊「OK」按鈕。( 小技巧: HTTPS標簽中可以設置下拉框為...from remote clients only , 貌似 就只接收遠程端的網路請求了)

(3)在電腦端的命令行輸入:ipconfig,找到本機的ip地址。(我的區域網IP:192.168.1.10)

(4)在手機端,打開android設備的「設置」->「WLAN」,找到你要連接的網路,在上面長按,然後選擇「修改網路」,彈出網路設置對話框,然後勾選「顯示高級選項」。 (其實蘋果手機也是類似的)

(5)在「代理」後面的輸入框選擇「手動」,在「代理伺服器主機名」後面的輸入框輸入電腦的ip地址,在「代理伺服器埠」後面的輸入框輸入8888,然後點擊「保存」按鈕。

(6)然後啟動android設備中的APP應用,在fiddler中可以看到完整的請求和響應數據。

2、手機APP應用網路數據分析

手機上打開某筆公考軟體後,從Fiddler左側欄中可以看到大量的請求鏈接。

點擊上圖黃色區域的鏈接,可看到右側詳細數據。

在右側詳細數據欄中,我們可以看到請求的網址:POST http:// xxx bi.com/android/sydw/exercises?&platform=android22&version=6.4.3&vendor=Tencent&app=gwy&deviceId=F4J/K8kXx6+C24yqFuzAiA==&av=8&kav=3 HTTP/1.1

post請求的參數keypointId=621638&type=3&limit=15

返回的數據為Json格式,從返回數據中我們可以找出questionIds對應的題目編號,如2084744.

點擊上上圖(Fiddler網路請求響應)中紅色框中的鏈接地址,我們可以看到右側詳細數據欄的數據

從上圖中我們可以找到ID號為2084744的題目的題干、選項、題型、答案等有用數據。

分析基本結束,此手機APP應用的模式基本是這樣:先請求15道題的ids,再根據meiti的ids請求題目相關數據。後續測試發現,請求questionIds時,修改參數,能一次最多請求到100道題的ids。

另外,從左側請求鏈接可以找出對應的章節分類請求鏈接,根據分類號再查找對應的questionids,就可以把所有的題目抓取出來。

3、xls操控

將就著基於xlrd模塊編寫自用模塊。

源碼在此,可能格式錯亂。需整理。

'''python

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

"""

Created on 2018-05-14 12:48:07

@author: wangzheng

Sys_Env : Windows_AMD64 Python3.5.2

Wechat : hrcl2015(微信)

Filename: MyXls.py

Description : xls文件操控類MyXls

            注意:文件路徑中不能有中文名,否則出錯

"""

from xlrd import open_workbook

from xlutils. import

import os,shutil

class MyXls:

    def __init__(self,fpath=None,modelfpath=None,sheetindex=None,protectrow=None,overwrite=True):

        self.openxlspath=''#已打開的xls文件

        self.sheetindex=None#當前工作表索引

        self.rb=None#

        self.wb=None#workbook工作簿

        self.ws=None#worksheet工作表

        self.headrow=0#開頭保護行數

        if (fpath is not None) and (modelfpath is not None):

            self.open__xls(modelfpath,fpath,True)

        elif fpath is not None:self.open_xls(fpath)

        if sheetindex is not None:self.get_sheet(sheetindex)

        if protectrow is not None:self.headrow=protectrow

    def open_xls(self,fpath):

        path=fpath

        try:

            rb = open_workbook(path)

        except Exception as err:

            print("File not exists: "+str(err))

            return False

        #通過sheet_by_index()獲取的sheet沒有write()方法

        #rs = rb.sheet_by_index(0)

        #rs = rb.sheet_by_name('sheet 1')

        self.wb = (rb)

        self.openxlspath=path

        return True

    def get_sheet(self,sheet_index=0):

        sheets=sheet_index

        #通過get_sheet()獲取的sheet有write()方法

        self.ws = self.wb.get_sheet(sheets)

        self.sheetindex=sheets

    def write_xls(self,row_index,column_index,data_str):

        row,col,data=row_index,column_index,data_str

        #寫入數據

        self.ws.write(row,col,data)#write(行,列,內容),索引從0開始

    def write_xls_bycolname(self,row_index,column_name,data_str):

        column_index=self.colname_to_num(column_name)

        row,col,data=row_index,column_index,data_str

        #寫入數據

        self.ws.write(row,col,data)#write(行,列,內容),索引從0開始

    def write_xls_bysheet(self,sheetindex,row_index,column_name,data_str):

        '''在指定工作表的指定行列表格中寫入數據'''

        if self.sheetindex != sheetindex :self.get_sheet(sheetindex)

        self.write_xls_bycolname(row_index,column_name,data_str)

    def save_xls(self,fpath=None):

        if fpath is None:

            self.wb.save(self.openxlspath)

            print('saved '+self.openxlspath)

        else:

            path=fpath

            self.wb.save(path)#保存xls文件

            print('saved '+path)

        return True

    def open__xls(self,model_fpath,new_fpath,overwrite=True):

        '''參照模板文件,復制並打開xls文件'''

        if os.path.exists(model_fpath) :

            new_fpath=self.auto_mkdir(new_fpath)

            if (not os.path.exists(new_fpath)) or overwrite:

                #print('[%s]to[%s]'%(model_fpath,new_fpath))

                shutil.(model_fpath,new_fpath)

                return self.open_xls(new_fpath)

            else:print('新文件已存在,請修改新文件名!');return False

        else:print('模板文件不存在,不能復制到新文件!');return False

    def num_to_colname(self,col_index,start=0):

        #列索引轉列名,基數start從0開始,0-->A

        if type(col_index) != int:

            return col_index

        if start==0:

            x=col_index+1

        elif start==1:

            x=col_index

        s=''

        flag=False#借位標志

        while x>26:

            y=x%26#取餘0-25

            if y==0:y=26;flag=True;

            d=chr(y+64)#低位

            s=d+s

            x=x//26#整除取商

            if flag:x=x-1;flag=False;#如果借位,商要先-1

        g=chr(x+64)#高位

        s=g+s

        return s

    def colname_to_num(self,colname,start=0):

        #列名轉列索引 A-->0,B->1,開始基數start為0

        if type(colname) is not str:

            return colname

        colname=colname.upper()#轉成大寫

        col = 0

        power  = 1

        #print(len(colname))#位數

        for i in range(len(colname) - 1, -1, -1):#range(start=0,stop,step=1)

            ch = colname[i] #倒序取字母

            #print(ch)#所在位上的字母

            col += (ord(ch) - ord('A') +  1 ) * power

            power *= 26

        #print(col-1)

        if start==0:return col-1

        if start==1:return col

    def auto_mkdir(self,fpath):

        '''自動補全目錄,目錄不存在就創建目錄'''

        #fpath='D:\\MyPython\\粉筆公考題庫提取\\678\\980\\test.txt'

        fpath=fpath.replace('\\','/')

        if not os.path.exists(fpath):

            plst=fpath.split(sep='/')

            path=''

            if not fpath.endswith('/'):plst=plst[:-1]

            for p in plst:

                path=path+p+'/'

                if not os.path.exists(path):os.mkdir(path)

            return fpath

if __name__=='__main__':

    model_fpath='D:\\MyPython\\model.xls'

    new_fpath='D:\\MyPython\\abc\\123/out.xls'

#    myxls=MyXls()

#    myxls.open__xls(model_fpath,new_fpath)

#    myxls.get_sheet(0)

    myxls=MyXls(new_fpath,model_fpath,2,3)

    myxls.write_xls_bycolname(6,'K','K列6行數據')

#    myxls.save_xls(new_fpath)

    myxls.save_xls()

    pass

'''

4、文件保存

保存成xls文件,和txt文件,txt文件再轉換成word文檔列印出來。大概有7個大類,100+小類,12737道題。

5、導入題庫軟體

xls文件導入題庫中。

6、大功告成

PS:某筆app更新後,加入了防抓取數據的功能,貌似安卓5.1以上的都不能抓取了。

據資深網友反應,使用安卓模擬器(系統版本4.4)還可以抓到明文數據,有興趣的讀者可以試一試。

『陸』 如何爬取滴滴順風車訂單 python

對手機端APP進行抓包,首先找到他們的API對API進行模擬登陸,在實時刷新訂單,並返回去程序就OK了,不過值得注意的是這一類APP API 大部分使用的是長連接來鏈接,抓包的時候注意一下

熱點內容
記賬app源碼 發布:2025-02-10 09:34:45 瀏覽:496
照片傳到g6的存儲卡 發布:2025-02-10 09:29:02 瀏覽:902
非加密公章 發布:2025-02-10 09:09:52 瀏覽:621
京東登錄密碼如何清除 發布:2025-02-10 09:07:41 瀏覽:690
dns伺服器地址192 發布:2025-02-10 09:07:39 瀏覽:662
redis緩存實現 發布:2025-02-10 09:01:26 瀏覽:711
後台登錄腳本 發布:2025-02-10 08:56:11 瀏覽:659
我的辣雞賬號和密碼是多少 發布:2025-02-10 08:55:37 瀏覽:691
超父演算法 發布:2025-02-10 08:43:05 瀏覽:911
電腦主機配置需要哪些硬體 發布:2025-02-10 08:22:52 瀏覽:706