整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          APP中十大篩選模塊類型知多少

          APP中十大篩選模塊類型知多少

          近在設(shè)計(jì)篩選相關(guān)頁(yè)面的時(shí)候,找來(lái)了一些參考。發(fā)現(xiàn)這種竟然有這么多不同種類的篩選設(shè)計(jì)類型,雖然以前在使用APP的時(shí)候也注意到過(guò),但是用用就忘記了。正好找機(jī)會(huì)進(jìn)行了下總結(jié)歸類,以后在碰到類似設(shè)計(jì)的時(shí)候能夠快速思考對(duì)應(yīng)哪種類型的設(shè)計(jì)比較合適。

          大致我進(jìn)行了如下分類:

          一、標(biāo)簽式篩選

          標(biāo)簽式篩選我們是最為常見的,比較典型的是在搜索頁(yè)面篩選中被廣泛使用。怎么運(yùn)用這里就不多說(shuō)了,大家都非常熟悉。

          如下圖:

          二、左側(cè)導(dǎo)航式篩選

          我們?cè)谌粘I铑愘?gòu)物的時(shí)候,例如購(gòu)買日用品、食物、便利商品的時(shí)候經(jīng)常會(huì)看到這種左側(cè)導(dǎo)航式篩選、這種導(dǎo)航式篩選比較適合品種類目特別多,層級(jí)分類較深的時(shí)候。

          單一層級(jí)如上圖兩鮮的APP,類似這種生活便利型的的APP最為常見,多層級(jí)的我們可以看下右上圖的設(shè)計(jì)。

          這種設(shè)計(jì)的好處是對(duì)于相對(duì)復(fù)雜的層級(jí)分類,能夠清晰有條理的收納。可以盡可能多的展示更多入口,尤其是對(duì)于購(gòu)物類的APP能夠增加多頻道的流量,當(dāng)然流量也可以轉(zhuǎn)換更多的交易量。

          三、下拉式篩選

          下拉式篩選分為:下拉彈窗、下拉卡片式篩選、下拉菜單加左側(cè)列表層疊式。

          (1)下拉彈窗

          我們可以看到上圖左一嗶哩嗶哩采用的下拉彈窗,這種樣式是篩選中比較常見的,最為普通的是單一層下拉彈窗,但這里嗶哩嗶哩運(yùn)用了層疊式的篩選形式,在設(shè)計(jì)上上面一排跟下面一排除了文字大小并沒有太大的區(qū)分,體驗(yàn)很差,再加上下拉彈窗一大堆的文字分類,密集恐懼癥有沒有。

          (2)下拉卡片式篩選

          那么我們?cè)賮?lái)看看京東同樣運(yùn)用了層疊式的下拉彈窗設(shè)計(jì),第一排跟第二排設(shè)計(jì)上有了明顯的區(qū)分,第二排采用了底板標(biāo)簽式樣,很好的區(qū)分了上下的層次感,另外一點(diǎn)為了進(jìn)一步加深區(qū)分,利用矩形標(biāo)簽的形狀,采用了卡片式的選項(xiàng)卡分類設(shè)計(jì)。信息雖多但每一個(gè)細(xì)節(jié)的層次感區(qū)分明顯,不失為好的設(shè)計(jì)。

          (3)下拉菜單加左側(cè)列表層疊式

          這種篩選形式首先采用了之前說(shuō)的列表層疊式樣式,同時(shí)它又是下拉菜單的形式。我們?cè)俅胃鷨袅▎袅ǖ脑O(shè)計(jì)進(jìn)行對(duì)比,如果像嗶哩嗶哩這種信息模塊特別多的情況,其實(shí)可以對(duì)三級(jí)菜單進(jìn)行再次歸類,結(jié)合左側(cè)列表層疊的樣式進(jìn)行設(shè)計(jì)。或是借鑒下京東的層次區(qū)分的設(shè)計(jì),展示效果會(huì)大大提升。

          四、折疊式篩選

          折疊式篩選在網(wǎng)頁(yè)端運(yùn)用的相對(duì)較多,其實(shí)在APP端用也非常好,因?yàn)檫@種形式如果第二層級(jí)分類不多,或者是第二層級(jí)信息量較少的情況下我們采用信息折疊的形式是比較好的。可以減少頁(yè)面的跳轉(zhuǎn),用戶只需要在當(dāng)前頁(yè)面獲取信息或者是在當(dāng)前頁(yè)面進(jìn)行篩選。

          五、浮層引導(dǎo)式篩選

          浮層引導(dǎo)式篩選常常用于首次進(jìn)入APP的時(shí)候,幫助用戶篩選出自己感興趣的內(nèi)容,之后方便后臺(tái)進(jìn)行數(shù)據(jù)統(tǒng)計(jì),然后根據(jù)不同用戶的喜好推送不同的內(nèi)容。這樣一勞永逸的篩選形式,避免了后期不必要的麻煩。而且全屏展示能夠提供更大的展示空間。

          六、橫條式篩選

          橫條式篩選包括:橫條標(biāo)尺型篩選、橫條進(jìn)度條型篩選

          (1)橫條標(biāo)尺型篩選

          上圖左一是京東金融的小白理財(cái)頁(yè)面,采用了比較新穎的標(biāo)尺進(jìn)行投資額的設(shè)定,用戶只需要左右滑動(dòng)即可,可操作性很強(qiáng),避免了用戶填寫數(shù)值的反感情緒。

          (2)橫條進(jìn)度條型篩選

          右上圖采用了進(jìn)度條的設(shè)計(jì),用戶拖動(dòng)滑塊即可確定數(shù)值,操作上沒有標(biāo)尺型那樣靈活,但適合用于彈窗或者是小的模塊上。

          七、彈窗式篩選

          彈窗式篩選主要分為:彈窗型篩選和底部彈窗型篩選

          (1)彈窗型篩選

          彈窗型的篩選一般來(lái)說(shuō)還是比較少見的,通常情況下還是慎用,因?yàn)閺棿皶?huì)打斷用戶瀏覽當(dāng)前頁(yè)面,影響操作的連貫性。類似于這種情況呢,我就建議使用下拉彈窗式篩選或者右側(cè)抽屜式篩選效果會(huì)更好,也不會(huì)打斷用戶對(duì)整個(gè)頁(yè)面的預(yù)覽。

          (2)底部彈窗型篩選

          上右圖的底部彈窗式篩選這種方式通常用于底部菜單欄的操作二級(jí)篩選展示,這種就比用彈窗型篩選好很多,把對(duì)整個(gè)頁(yè)面的干擾降到最低。

          八、填鴨式篩選

          填鴨式篩選通常用于多選情況比較多,當(dāng)然也有單選的時(shí)候,還有填寫調(diào)查問(wèn)卷或者測(cè)試題的時(shí)候。

          我們可以看到上圖左的底部彈窗填鴨式篩選,右側(cè)對(duì)篩選項(xiàng)目進(jìn)行了選中的高亮型設(shè)計(jì),層次感非常好。這種模擬填鴨的形式模擬了真實(shí)的習(xí)題選擇,可視化較強(qiáng),是一種不錯(cuò)的設(shè)計(jì)形式。

          我們?cè)賮?lái)看看右圖的字母選項(xiàng)卡填鴨式設(shè)計(jì),這個(gè)藥品的分類就很好,同樣類似于上面嗶哩嗶哩面臨入口模塊繁雜的情況。

          一般這種精細(xì)化的選擇的目標(biāo)用戶是深度用戶,有明確目的性的。漫無(wú)目的的用戶不會(huì)去篩選這么復(fù)雜的操作。所以這里巧妙的結(jié)合運(yùn)用了字母選項(xiàng)卡的設(shè)計(jì),然后對(duì)信息入口進(jìn)行了歸類整合分隔展示,整個(gè)頁(yè)面看起來(lái)更有邏輯調(diào)理。

          九、日期篩選

          日期篩選分為:滾動(dòng)式和日歷式。

          (1)滾動(dòng)式篩選

          日期滾動(dòng)式篩選是iOS里的日期篩選特性,也是極為常見的設(shè)計(jì)形式。這種篩選形式有點(diǎn)像密碼鎖,操作趣味性強(qiáng),降低用戶填寫數(shù)字的負(fù)面情緒。但是記得在我之前工作的時(shí)候?qū)蛹?jí)采用了日期滾動(dòng)式設(shè)計(jì),在進(jìn)行安卓后期的調(diào)整的時(shí)候發(fā)現(xiàn)開發(fā)告知我安卓沒辦法做出具有景深的滾動(dòng)效果。那么視覺效果就大打折扣了。

          實(shí)際上安卓的設(shè)計(jì)規(guī)范Material Design采用的是菜單原地展開,蓋住當(dāng)前選項(xiàng),當(dāng)前選項(xiàng)成為菜單的第一項(xiàng)的設(shè)計(jì)形式。并非iOS的滾動(dòng)式篩選,如下圖所示。

          所以我們運(yùn)用滾動(dòng)式設(shè)計(jì)形式的時(shí)候,記得要考慮iOS跟安卓的平臺(tái)差異性。

          (2)日歷篩選

          日歷篩選是另一種日期篩選形式,這種形式適合運(yùn)用在購(gòu)買機(jī)票火車票,或者是期刊專題類設(shè)計(jì)的頁(yè)面上。因?yàn)橛袝r(shí)候可能我們并不是很明確要選擇哪個(gè)日期,尤其是買飛機(jī)票我們要看不同日期的不同票價(jià)進(jìn)行比對(duì)。還有期刊專題我們回顧往期期刊的時(shí)候,并不會(huì)明確的記得哪個(gè)日期沒有看。這時(shí)候就需要可視化更強(qiáng)的設(shè)計(jì),日歷篩選。

          十、右側(cè)抽屜式篩選

          右側(cè)抽屜式設(shè)計(jì)其實(shí)是比較綜合類的篩選設(shè)計(jì),通常情況下跟下拉式彈窗設(shè)計(jì)結(jié)合使用。通常展示了不同的篩選形式,例如標(biāo)簽式篩選、折疊式篩選、填鴨式篩選等等。總之當(dāng)我們需要展示不同篩選形式的時(shí)候推薦使用右側(cè)抽屜式篩選設(shè)計(jì)。

          總結(jié)

          這里我們針對(duì)不同的使用場(chǎng)景總結(jié)出了十大篩選類型,分別為:標(biāo)簽式篩選、左側(cè)導(dǎo)航式篩選、下拉式篩選、折疊式篩選、浮層引導(dǎo)式篩選、橫條式篩選、彈窗式篩選、填鴨式篩選、日期篩選、右側(cè)抽屜式篩選。

          相信我們?cè)谝院笤O(shè)計(jì)篩選模塊的時(shí)候不至于束手無(wú)策了,希望本篇對(duì)您有幫助!

          作者:角馬X ,口袋理財(cái)U(kuò)ED設(shè)計(jì)經(jīng)理 公眾號(hào):海鹽社

          本文由 @角馬X 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載

          題圖來(lái)自Unsplash,基于CC0協(xié)議

          eb爬取是從Web上收集和解析數(shù)據(jù)的過(guò)程。Python社區(qū)已經(jīng)開發(fā)出一些非常強(qiáng)大的web爬取工具。其中,Pandas read_html()是從html表中爬取數(shù)據(jù)的一種快速方便的方法。

          在本文中,你將學(xué)習(xí)Pandas read_html()來(lái)處理以下常見問(wèn)題,并幫助你進(jìn)行web爬取。

          1.從字符串讀取表

          2.從URL讀取表

          3.從文件讀取表

          4.使用parse_dates分析日期列

          5.使用converters顯式轉(zhuǎn)換類型

          6.多索引、標(biāo)題和索引列

          7.用match匹配表

          8.使用屬性篩選表

          9.使用缺失值

          請(qǐng)檢查Notebook的源代碼(https://github.com/BindiChen/machine-learning/blob/master/data-analysis/024-pandas-read_html/pandas-read_html.ipynb)。


          1.從字符串中讀取表

          在第一個(gè)示例中,我們將從字符串中讀取HTML表。

          html_string="""
          <table>
           <thead>
           <tr>
           <th>date</th>
           <th>name</th>
           <th>year</th>
           <th>cost</th>
           <th>region</th>
           </tr>
           </thead>
           <tbody>
           <tr>
           <td>2020-01-01</td>
           <td>Jenny</td>
           <td>1998</td>
           <td>0.2</td>
           <td>South</td>
           </tr>
           <tr>
           <td>2020-01-02</td>
           <td>Alice</td>
           <td>1992</td>
           <td>-1.34</td>
           <td>East</td>
           </tr>
           <tr>
           <td>2020-01-03</td>
           <td>Tomas</td>
           <td>1982</td>
           <td>1.00023</td>
           <td>South</td>
           </tr>
           </tbody>
          </table>
          """

          要從字符串中讀取表,請(qǐng)執(zhí)行以下操作:

          dfs=pd.read_html(html_string)

          現(xiàn)在,我們得到的結(jié)果不是Pandas數(shù)據(jù)幀而是Python列表。如果使用type()函數(shù),可以看到:

          >>> type(dfs)
          list

          如果要獲取表,可以使用索引訪問(wèn)它:

          dfs[0]

          結(jié)果看起來(lái)很棒。讓我們看看dfs[0].info()的數(shù)據(jù)類型。默認(rèn)情況下,數(shù)值列被轉(zhuǎn)換為數(shù)值類型,例如,year和cost列分別被轉(zhuǎn)換為int64和float64。

          >>> df[0].info()
          
          RangeIndex: 3 entries, 0 to 2
          Data columns (total 5 columns):
           # Column Non-Null Count Dtype 
          --- ------ -------------- ----- 
           0 date 3 non-null object 
           1 name 3 non-null object 
           2 year 3 non-null int64 
           3 cost 3 non-null float64
           4 region 3 non-null object 
          dtypes: float64(1), int64(1), object(3)
          memory usage: 248.0+ bytes

          2.從URL讀取表

          Pandas read_html()接受URL。讓我們通過(guò)一個(gè)例子來(lái)看看這是如何工作的。

          URL='https://en.wikipedia.org/wiki/London'
          
          dfs=pd.read_html(URL)

          與從字符串讀取相同,它返回一個(gè)數(shù)據(jù)幀列表。如果我們運(yùn)行l(wèi)en(dfs),我們可以從給定的URL得到31個(gè)表。

          >>> print(f'Total tables: {len(dfs)}')
          31

          下面是dfs[6]的一個(gè)例子:


          3.從文件讀取表

          Pandas read_html()接受一個(gè)文件。讓我們通過(guò)一個(gè)例子來(lái)看看這是如何工作的。

          file_path='html_string.txt'
          with open(file_path, 'r') as f:
           dfs=pd.read_html(f.read())
          
          dfs[0]

          注意:以下教程將從字符串中讀取數(shù)據(jù),因?yàn)殡S著時(shí)間的推移,網(wǎng)頁(yè)內(nèi)容可能變更。


          4.使用parse_dates分析日期列

          日期列作為對(duì)象數(shù)據(jù)類型讀取。要正確讀取日期列,可以使用參數(shù)parse_dates指定日期列的列表。

          >>> dfs=pd.read_html(html_string, parse_dates=['date'])
          >>> dfs[0].info()
          
          RangeIndex: 3 entries, 0 to 2
          Data columns (total 5 columns):
           # Column Non-Null Count Dtype 
          --- ------ -------------- ----- 
           0 date 3 non-null datetime64[ns]
           1 name 3 non-null object 
           2 year 3 non-null int64 
           3 cost 3 non-null float64 
           4 region 3 non-null object 
          dtypes: datetime64[ns](1), float64(1), int64(1), object(2)
          memory usage: 248.0+ bytes

          5.使用converters顯式轉(zhuǎn)換類型

          默認(rèn)情況下,數(shù)值列被轉(zhuǎn)換為數(shù)值類型,例如,我們看到的year和cost列。但并非所有的數(shù)字文本數(shù)據(jù)都必須是數(shù)字類型,例如,所有值都以零開頭的ID列。

          ID=0001

          此外,有時(shí)可能需要顯式地進(jìn)行類型轉(zhuǎn)換以確保數(shù)據(jù)類型的完整性。對(duì)于這些要求,我們可以使用參數(shù)轉(zhuǎn)換器顯式地進(jìn)行類型轉(zhuǎn)換:

          dfs=pd.read_html(html_string, converters={
           'ID': str,
           'year': int,
           'cost': float,
          })

          6.多索引、標(biāo)題和索引列

          默認(rèn)情況下,位于<thead>中的<th>或<td>元素用于形成列索引,如果<thead>中包含多行,則創(chuàng)建一個(gè)多索引。

          下面是一個(gè)在<thead>中包含多行的HTML表的示例。

          html_string="""
          <table>
           <thead>
           <tr>
           <th colspan="5">Year 2020</th>
           </tr>
           <tr>
           <th>date</th>
           <th>name</th>
           <th>year</th>
           <th>cost</th>
           <th>region</th>
           </tr>
           </thead>
           <tbody>
           <tr>
           <td>2020-01-01</td>
           <td>Jenny</td>
           <td>1998</td>
           <td>1.2</td>
           <td>South</td>
           </tr>
           <tr>
           <td>2020-01-02</td>
           <td>Alice</td>
           <td>1992</td>
           <td>-1.34</td>
           <td>East</td>
           </tr>
           </tbody>
          </table>
          """

          它創(chuàng)建多重索引,因?yàn)?lt;thead>中有多行。

          dfs=pd.read_html(html_string)
          dfs[0]

          指定標(biāo)題行:

          dfs=pd.read_html(html_string, header=1)
          dfs[0]

          指定索引列:

          dfs=pd.read_html(html_string, header=1, index_col=0)
          dfs[0]

          7.用match匹配表

          參數(shù)匹配采用字符串或正則表達(dá)式。該值默認(rèn)為.+(匹配任何非空字符串),并將返回所有表。

          我們通過(guò)一個(gè)例子來(lái)看看這是如何工作的。

          html_string="""
          <table id="report">
           <caption>2020 report</caption>
           <thead>
           <tr>
           <th>date</th>
           <th>name</th>
           </tr>
           </thead>
           <tbody>
           <tr>
           <td>2020-01-01</td>
           <td>Jenny</td>
           </tr>
           <tr>
           <td>2020-01-02</td>
           <td>Alice</td>
           </tr>
           </tbody>
          </table>
          
          <table>
           <caption>Average income</caption>
           <thead>
           <tr>
           <th>name</th>
           <th>income</th>
           </tr>
           </thead>
           <tbody>
           <tr>
           <td>Tom</td>
           <td>200</td>
           </tr>
           <tr>
           <td>James</td>
           <td>300</td>
           </tr>
           </tbody>
          </table>
          """

          要讀取包含特定文本的表:

          # 標(biāo)題中的文本
          dfs=pd.read_html(html_string, match='2020 report')
          
          # 表格單元格中的文本
          dfs=pd.read_html(html_string, match='James')

          8.使用屬性篩選表

          參數(shù)attrs接受任何有效的HTML標(biāo)記屬性的字典來(lái)篩選表。例如:

          dfs=pd.read_html(html_string, attrs={'id': 'report'})

          id是有效的HTML標(biāo)記屬性。


          9.使用缺失值

          默認(rèn)情況下,所有空字符串都被視為缺失值,并作為NaN讀取。

          下面是一個(gè)HTML表格的示例,其中的< td >單元格中有一些空字符串。

          html_string="""
          <table>
           <tr>
           <th>date</th>
           <th>name</th>
           <th>year</th>
           <th>cost</th>
           <th>region</th>
           </tr>
           <tr>
           <td>2020-01-01</td>
           <td>Jenny</td>
           <td>1998</td>
           <td>1.2</td>
           <td>South</td>
           </tr>
           <tr>
           <td>2020-01-02</td>
           <td>Alice</td>
           <td>1992</td>
           <td></td>
           <td>East</td>
           </tr>
           <tr>
           <td>2020-01-03</td>
           <td>Tomas</td>
           <td>1982</td>
           <td></td>
           <td>South</td>
           </tr>
          </table>
          """

          以默認(rèn)設(shè)置讀取。

          dfs=pd.read_html(html_string)
          dfs[0]

          為了保留這些空字符串,我們可以將參數(shù)keep_default_na設(shè)置為False。

          dfs=pd.read_html(html_string, keep_default_na=False)

          有時(shí),對(duì)于缺少的值,你可能有其他字符表示法。如果我們知道什么類型的字符用作表中的缺失值,我們可以使用na_values參數(shù)處理它們:

          dfs=pd.read_html(html_string, na_values=['?', '&'])

          當(dāng)數(shù)據(jù)幀已經(jīng)創(chuàng)建好后,我們可以使用pandas replace()函數(shù)來(lái)處理這些值:

          df_clean=dfs[0].replace({ "?": np.nan, "&": np.nan })

          結(jié)論

          Pandas read_html()函數(shù)是一種快速方便地從html表中獲取數(shù)據(jù)的方法。

          我希望本文能幫助你節(jié)省從HTML表中刪除數(shù)據(jù)的時(shí)間。建議你查看read_html()API的文檔,并了解可以做的其他事情。

          謝謝你的閱讀。請(qǐng)查看Notebook的源代碼,如果你對(duì)機(jī)器學(xué)習(xí)的實(shí)際方面感興趣,請(qǐng)繼續(xù)關(guān)注:https://github.com/BindiChen/machine-learning/blob/master/data-analysis/024-pandas-read_html/pandas-read_html.ipynb。

          、篩選請(qǐng)求

          1. 使用過(guò)濾,需勾選User Filter才會(huì)生效,運(yùn)行當(dāng)前的過(guò)濾規(guī)則,需點(diǎn)擊Run Filterset now

          1. Hosts:主機(jī)過(guò)濾之局域網(wǎng)過(guò)濾

          • No Zone Filter:默認(rèn)選項(xiàng),不設(shè)置區(qū)域過(guò)濾器
          • show only Intranet Hosts:只顯示內(nèi)網(wǎng)的Hosts,即過(guò)濾掉外網(wǎng)的Hosts。此時(shí),只顯示URL請(qǐng)求目標(biāo)服務(wù)器在內(nèi)網(wǎng)的請(qǐng)求
          • show only internet Hosts:與上相對(duì)應(yīng),只顯示外網(wǎng)的Hosts
          1. Hosts:主機(jī)過(guò)濾之廣域網(wǎng)過(guò)濾

          • No Host Filter:默認(rèn)選項(xiàng),不設(shè)置過(guò)濾主機(jī)IP條件
          • Hide the following Hosts:隱藏輸入到下面文本框中的Hosts
          • Show only the following Hosts:僅顯示輸入到下面文本框中的Hosts
          • Flag the following Hosts:標(biāo)識(shí)下邊輸入的主機(jī)名的會(huì)話(加粗)
          1. Client process:客戶端進(jìn)程過(guò)濾

          • Show only traffic from:指定只顯示哪個(gè)Windows進(jìn)程中的請(qǐng)求,右側(cè)會(huì)列出當(dāng)前所有的 Windows 進(jìn)程。
          • Show only Internet Explorer traffic:只顯示IE發(fā)出的請(qǐng)求。
          • Hide trafficfrom service host:隱藏來(lái)自service
          1. Request header:請(qǐng)求頭過(guò)濾

          • Show only if URL contains:僅顯示URL中包含指定字符串的請(qǐng)求,字符串可以是URL中的一部分,多個(gè)字符串用空格分開,也可以使用EXACT:前綴來(lái)限定大小寫,或者使用REGEX:前綴正則表達(dá)式或完整的URL。
          • Hide if URL contains:僅隱藏URL中包含指定字符串的請(qǐng)求,字符串可以是URL中的一部分,多個(gè)用空格分開,可以是正則或完整的URL。
          • Flag requests with headers:標(biāo)記帶有特定header的請(qǐng)求,如果在websession列表中存在該請(qǐng)求,會(huì)加粗顯示。
          • Delete request headers:刪除請(qǐng)求中指定的Header字段
          • Set request Header:在URL請(qǐng)求中添加頭字段,與上一條對(duì)應(yīng)。前面輸入字段,后面輸入值。
          1. Breakpionts:設(shè)置斷點(diǎn)

          • Break request on Post:對(duì)所有Post請(qǐng)求設(shè)置斷點(diǎn)
          • Break request on GET with query string:對(duì)所有帶參數(shù)的 GET 請(qǐng)求設(shè)置斷點(diǎn)
          • Break on XMLHttpRequest:對(duì)所有Ajax請(qǐng)求設(shè)置斷點(diǎn)
          • Break response on Content-type:對(duì)響應(yīng)報(bào)文中header字段中,Content-Type屬性匹配成功的請(qǐng)求設(shè)置斷點(diǎn)
          1. Response Status Code:響應(yīng)狀態(tài)碼過(guò)濾

          • Hide success(2xx):隱藏響應(yīng)狀態(tài)碼為2xx的URL請(qǐng)求
          • Hide non-2xx:隱藏響應(yīng)狀態(tài)碼不是2xx的URL請(qǐng)求
          • Hide Authentication demands(401,407):隱藏認(rèn)證(響應(yīng)狀態(tài)碼為:401 407)的URL請(qǐng)求
          • Hide redirects(300,301,302,303,307):隱藏重定向(響應(yīng)狀態(tài)碼為:300,301,302,303,07)的URL請(qǐng)求
          • Hide Not Modifield(304):隱藏不是緩存的狀態(tài)碼(304)的URL請(qǐng)求
          1. Response Type and Size :響應(yīng)類型和報(bào)文大小過(guò)濾

          • 下拉類別選擇顯示類型
          Show all Content-Type:顯示所有類型Content-Type的請(qǐng)求,Content-Type即為響應(yīng)結(jié)果header信息中Content-Type字段
          Show only IMAGE/*:僅顯示響應(yīng)類型為圖片的請(qǐng)求
          Show only HTML:僅顯示響應(yīng)類型為HTML的請(qǐng)求
          Show only TEXT/CSS:僅顯示響應(yīng)類型為text/css的請(qǐng)求
          Show only SCRIPTS:僅顯示響應(yīng)類型為Scripts的請(qǐng)求
          Show only XML:僅顯示響應(yīng)類型為XML的請(qǐng)求
          Show only JSON:僅顯示響應(yīng)類型為Json的請(qǐng)求
          Hide IMAGE/*:隱藏所有響應(yīng)類型為圖片的請(qǐng)求
          • Hide smaller than:隱藏小于指定大小響應(yīng)結(jié)果的請(qǐng)求。
          • Hide larger than:隱藏大于指定大小響應(yīng)結(jié)果的請(qǐng)求。
          • Time HeatMap:時(shí)間熱圖。
          • Block script files:阻止返回正常JS文件,如果響應(yīng)是腳本文件,那么響應(yīng) 404。
          • Block image files:阻止返回正常圖片文件,如果響應(yīng)是圖片文件,那么響應(yīng) 404。
          • Block SWF files:阻止返回正常SWF文件,如果響應(yīng)是SWF 文件,那么響應(yīng) 404。
          • Block CSS files:阻止返回正常CSS文件,如果響應(yīng)是 CSS 文件,那么響應(yīng) 404。
          1. Response Header:響應(yīng)頭過(guò)濾

          • Flag responses that set cookies:會(huì)話列表的響應(yīng)中有cookies信息的加上標(biāo)識(shí)(斜體)。
          • Flag responses with headers:會(huì)話列表里標(biāo)記響應(yīng)中帶有特定header的請(qǐng)求(即加粗)。
          • Delete response headers:會(huì)話列表里刪除響應(yīng)信息中,有指定的Header字段的會(huì)話。
          • Set response header:在響應(yīng)中添加header字段,第一個(gè)輸入框是header 的key,第二個(gè)輸入框是對(duì)應(yīng)value

          二、修改請(qǐng)求參數(shù)之臨時(shí)修改參數(shù)

          1. 臨時(shí)修改參數(shù),可通過(guò)urlreplace SeekStr ReplaceWithStr命令,做參數(shù)替換
          2. 打開Fiddler,再打開百度,搜索csdn,在Fiddler中查看參數(shù),wd是查詢參數(shù)

          1. Fiddler命令行輸入urlreplace wd=csdn wd=js回車,回到瀏覽器點(diǎn)擊百度一下,會(huì)發(fā)現(xiàn)雖然搜索的是csdn,但是查出來(lái)的是js相關(guān)的信息,這種方法關(guān)閉Fiddler之后就會(huì)失效

          三、斷點(diǎn)修改請(qǐng)求參數(shù)

          1. 在請(qǐng)球之前攔截請(qǐng)求,以剛才的csdn為例

          1. 點(diǎn)擊百度一下,會(huì)發(fā)現(xiàn)已經(jīng)進(jìn)入Fiddler斷點(diǎn)

          1. 點(diǎn)擊請(qǐng)求,點(diǎn)擊Inspectors>WebForms,修改參數(shù)中的wd為js,點(diǎn)擊Run to Complation,會(huì)發(fā)現(xiàn)雖然搜索的是csdn,但是查出來(lái)的是js相關(guān)的信息

          1. 這種方法修改參數(shù),如果遇到請(qǐng)求參數(shù)中有時(shí)間戳的很容易造成請(qǐng)求失敗,而且斷點(diǎn)會(huì)斷住所有請(qǐng)求,如果想斷某個(gè)請(qǐng)求,最好還是做個(gè)請(qǐng)求篩選

          四、通過(guò)Composer修改參數(shù)

          1. 先通過(guò)瀏覽器百度csdn,F(xiàn)iddler中查看Inspectors>WebView會(huì)看到搜索出來(lái)的是csdn,如果是亂碼點(diǎn)擊Decode解碼一下

          1. 鼠標(biāo)左鍵把請(qǐng)求拖到Composer,在Url中找到wd,修改為js,點(diǎn)擊執(zhí)行,查看Inspectors>WebView會(huì)看到搜索出來(lái)的是js

          1. 這種方法修改參數(shù),如果遇到請(qǐng)求參數(shù)中有時(shí)間戳的很容易造成請(qǐng)求失敗,而且不會(huì)在瀏覽器上體現(xiàn)出來(lái),相當(dāng)于postman創(chuàng)建了一個(gè)請(qǐng)求,好處就是會(huì)有歷史記錄下次使用可以直接在歷史記錄里找

          五、修改請(qǐng)求參數(shù)之永久修改參數(shù),F(xiàn)iddlerScript修改參數(shù)

          1. 找到FiddlerScript編輯腳本,也可以在工具欄Rules > Customize Rules中修改腳本

          1. 找到static function OnBeforeRequest,添加oSession.uriContains("web=csdn")代碼,點(diǎn)擊save script保存腳本

          1. 打開瀏覽器搜索csdn,會(huì)發(fā)現(xiàn)雖然搜索的是csdn,但是查出來(lái)的是js相關(guān)的信息,這種方法關(guān)閉瀏覽器不會(huì)失效、也不用打斷點(diǎn),缺點(diǎn)是需要熟悉.Net,不過(guò)需要什么代碼,度娘應(yīng)該會(huì)給你答案

          六、修改請(qǐng)求腳本代碼

          1. 攔截post請(qǐng)求,并修改JSON格式參數(shù)
          if (oSession.HTTPMethodIs("POST") && oSession.uriContains("example.com")) {
              // 獲取請(qǐng)求的 Body 數(shù)據(jù)
              var requestBody=oSession.GetRequestBodyAsString();
          
              // 解析 JSON
              var json=Fiddler.WebFormats.JSON.JsonDecode(requestBody);
          
          
              // 修改 JSON 參數(shù)
              json.JSONObject["Body"]["kwy"]="value";
              // 刪除 JSON 參數(shù)
              json.JSONObject.Remove('key');
              json.JSONObject["Body"].Remove("key");
              
              // 將修改后的 JSON 轉(zhuǎn)換回字符串
              var modifiedRequestBody=Fiddler.WebFormats.JSON.JsonEncode(json.JSONObject);
              // 更新請(qǐng)求的 Body 數(shù)據(jù)
              oSession.utilSetRequestBody(modifiedRequestBody);
          }
          1. 攔截post請(qǐng)求,并修改普通參數(shù),非JSON格式
          if (oSession.HTTPMethodIs("POST") && oSession.uriContains("example.com")) {
              // 獲取請(qǐng)求的 Body 數(shù)據(jù)
              var requestBody=oSession.GetRequestBodyAsString();
          
              // 修改參數(shù)
              requestBody=requestBody.replace("param1=value1", "param1=newValue");
          
              // 更新請(qǐng)求的 Body 數(shù)據(jù)
              oSession.utilSetRequestBody(requestBody);
          }
          1. 攔截get請(qǐng)求,并修改url參數(shù),如果post請(qǐng)求url中帶有參數(shù),可以把GET換成POST
          if (oSession.HTTPMethodIs("GET") && oSession.uriContains("example.com")) {
              // 獲取請(qǐng)求的 URL
              var url=oSession.fullUrl;
          
              // 修改參數(shù)
              url=url.replace("param1=value1", "param1=newvalue");
          
              // 更新請(qǐng)求的 URL
              oSession.fullUrl=url;
          }
          1. 攔截get請(qǐng)求,并刪除url參數(shù),如果post請(qǐng)求url中帶有參數(shù),可以把GET換成POST
          import System.Web;
          
          if (oSession.HTTPMethodIs("GET") & & oSession.uriContains("example.com")) {
              // 獲取請(qǐng)求的 URL
              var url=oSession.fullUrl;
              
              // 解析 URL 中的參數(shù)
              var uri=new System.Uri(url);
              var queryString=System.Web.HttpUtility.ParseQueryString(uri.Query);
              
              // 刪除指定的參數(shù)
              queryString.Remove("dt");
              
              // 構(gòu)建新的 URL
              var newUrl=uri.GetLeftPart(System.UriPartial.Path) + "?" + queryString.ToString();
              
              // 更新請(qǐng)求的 URL
              oSession.fullUrl=newUrl;
          }
          1. 攔截get請(qǐng)求,并修改請(qǐng)求頭,如果需要修改POST請(qǐng)求頭,可以把GET換成POST
          if (oSession.HTTPMethodIs("GET") && oSession.uriContains("example.com")) {
              // 獲取請(qǐng)求的頭部對(duì)象
              var headers=oSession.oRequest.headers;
          
              // 修改頭部的值
              headers["key"]="value";
          
              // 刪除指定的頭部
              headers.Remove("key");
          }
          1. 攔截get請(qǐng)求,并修改cookie,如果需要修改POST請(qǐng)求cookie,可以把GET換成POST
          if (oSession.HTTPMethodIs("GET") && oSession.uriContains("example.com")) {
              // 獲取請(qǐng)求的 Cookie 值
              var cookieValue=oSession.oRequest["Cookie"];
              
              // 添加cookie
              cookieValue+=";key=value";
              
              // 修改cookie
              cookieValue=cookieValue.Replace("key=value", "key=newValue");
              
              // 刪除cookie
              cookieValue=cookieValue.Replace("key=value", "");
          
              oSession.oRequest["Cookie"]=cookieValue
          }
          1. 正則替換字符串,以修改cookie為例
          if (oSession.HTTPMethodIs("GET") && oSession.uriContains("example.com")) {
              // 獲取請(qǐng)求的 Cookie 值
              var cookieValue=oSession.oRequest["Cookie"];
              
              var pattern="key=([^&]*)";
              var regex=new System.Text.RegularExpressions.Regex(pattern);
              var cookieValue=regex.Replace(cookieValue, "key=newValue");
          
              oSession.oRequest["Cookie"]=cookieValue
          }
          1. 輸出cookie到控制臺(tái),可通過(guò)log查看
          FiddlerApplication.Log.LogString("cookie: " + cookieValue);

          主站蜘蛛池模板: 久久青青草原一区二区| 无码国产精成人午夜视频一区二区| 视频一区在线播放| 亚洲免费一区二区| 亚洲中文字幕无码一区二区三区| 久久精品国产亚洲一区二区三区 | 亚洲一区二区三区首页| 精品不卡一区中文字幕| 国产香蕉一区二区在线网站| 国产一区二区精品在线观看| 亚洲午夜日韩高清一区 | 久久精品免费一区二区三区| 亚洲综合无码一区二区| 无码夜色一区二区三区| 中文字幕一区在线| 亚洲AV日韩综合一区| 国产乱子伦一区二区三区| 手机福利视频一区二区| 国产一区二区好的精华液| 天堂成人一区二区三区| 中文激情在线一区二区| 69福利视频一区二区| 亚洲电影一区二区| 免费无码一区二区三区| 亚洲国产一区二区三区青草影视| 国产精品区一区二区三在线播放| 成人区人妻精品一区二区不卡视频 | 91精品一区国产高清在线| 亚洲av无码成人影院一区| 国产色综合一区二区三区| 久久国产香蕉一区精品| 国偷自产av一区二区三区| 性色AV一区二区三区| 风间由美性色一区二区三区| 任你躁国语自产一区在| 91香蕉福利一区二区三区| 波多野结衣电影区一区二区三区| 亚洲一区二区影院| 超清无码一区二区三区| 精品一区二区三区无码免费直播 | 日韩成人一区ftp在线播放|