Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 亚洲日本va中文字幕在线不卡,国产嫩草影院,日本aaaaaa

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

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

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

          近在設計篩選相關頁面的時候,找來了一些參考。發現這種竟然有這么多不同種類的篩選設計類型,雖然以前在使用APP的時候也注意到過,但是用用就忘記了。正好找機會進行了下總結歸類,以后在碰到類似設計的時候能夠快速思考對應哪種類型的設計比較合適。

          大致我進行了如下分類:

          一、標簽式篩選

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

          如下圖:

          二、左側導航式篩選

          我們在日常生活類購物的時候,例如購買日用品、食物、便利商品的時候經常會看到這種左側導航式篩選、這種導航式篩選比較適合品種類目特別多,層級分類較深的時候。

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

          這種設計的好處是對于相對復雜的層級分類,能夠清晰有條理的收納??梢员M可能多的展示更多入口,尤其是對于購物類的APP能夠增加多頻道的流量,當然流量也可以轉換更多的交易量。

          三、下拉式篩選

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

          (1)下拉彈窗

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

          (2)下拉卡片式篩選

          那么我們再來看看京東同樣運用了層疊式的下拉彈窗設計,第一排跟第二排設計上有了明顯的區分,第二排采用了底板標簽式樣,很好的區分了上下的層次感,另外一點為了進一步加深區分,利用矩形標簽的形狀,采用了卡片式的選項卡分類設計。信息雖多但每一個細節的層次感區分明顯,不失為好的設計。

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

          這種篩選形式首先采用了之前說的列表層疊式樣式,同時它又是下拉菜單的形式。我們再次跟嗶哩嗶哩的設計進行對比,如果像嗶哩嗶哩這種信息模塊特別多的情況,其實可以對三級菜單進行再次歸類,結合左側列表層疊的樣式進行設計。或是借鑒下京東的層次區分的設計,展示效果會大大提升。

          四、折疊式篩選

          折疊式篩選在網頁端運用的相對較多,其實在APP端用也非常好,因為這種形式如果第二層級分類不多,或者是第二層級信息量較少的情況下我們采用信息折疊的形式是比較好的。可以減少頁面的跳轉,用戶只需要在當前頁面獲取信息或者是在當前頁面進行篩選。

          五、浮層引導式篩選

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

          六、橫條式篩選

          橫條式篩選包括:橫條標尺型篩選、橫條進度條型篩選

          (1)橫條標尺型篩選

          上圖左一是京東金融的小白理財頁面,采用了比較新穎的標尺進行投資額的設定,用戶只需要左右滑動即可,可操作性很強,避免了用戶填寫數值的反感情緒。

          (2)橫條進度條型篩選

          右上圖采用了進度條的設計,用戶拖動滑塊即可確定數值,操作上沒有標尺型那樣靈活,但適合用于彈窗或者是小的模塊上。

          七、彈窗式篩選

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

          (1)彈窗型篩選

          彈窗型的篩選一般來說還是比較少見的,通常情況下還是慎用,因為彈窗會打斷用戶瀏覽當前頁面,影響操作的連貫性。類似于這種情況呢,我就建議使用下拉彈窗式篩選或者右側抽屜式篩選效果會更好,也不會打斷用戶對整個頁面的預覽。

          (2)底部彈窗型篩選

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

          八、填鴨式篩選

          填鴨式篩選通常用于多選情況比較多,當然也有單選的時候,還有填寫調查問卷或者測試題的時候。

          我們可以看到上圖左的底部彈窗填鴨式篩選,右側對篩選項目進行了選中的高亮型設計,層次感非常好。這種模擬填鴨的形式模擬了真實的習題選擇,可視化較強,是一種不錯的設計形式。

          我們再來看看右圖的字母選項卡填鴨式設計,這個藥品的分類就很好,同樣類似于上面嗶哩嗶哩面臨入口模塊繁雜的情況。

          一般這種精細化的選擇的目標用戶是深度用戶,有明確目的性的。漫無目的的用戶不會去篩選這么復雜的操作。所以這里巧妙的結合運用了字母選項卡的設計,然后對信息入口進行了歸類整合分隔展示,整個頁面看起來更有邏輯調理。

          九、日期篩選

          日期篩選分為:滾動式和日歷式。

          (1)滾動式篩選

          日期滾動式篩選是iOS里的日期篩選特性,也是極為常見的設計形式。這種篩選形式有點像密碼鎖,操作趣味性強,降低用戶填寫數字的負面情緒。但是記得在我之前工作的時候層級采用了日期滾動式設計,在進行安卓后期的調整的時候發現開發告知我安卓沒辦法做出具有景深的滾動效果。那么視覺效果就大打折扣了。

          實際上安卓的設計規范Material Design采用的是菜單原地展開,蓋住當前選項,當前選項成為菜單的第一項的設計形式。并非iOS的滾動式篩選,如下圖所示。

          所以我們運用滾動式設計形式的時候,記得要考慮iOS跟安卓的平臺差異性。

          (2)日歷篩選

          日歷篩選是另一種日期篩選形式,這種形式適合運用在購買機票火車票,或者是期刊專題類設計的頁面上。因為有時候可能我們并不是很明確要選擇哪個日期,尤其是買飛機票我們要看不同日期的不同票價進行比對。還有期刊專題我們回顧往期期刊的時候,并不會明確的記得哪個日期沒有看。這時候就需要可視化更強的設計,日歷篩選。

          十、右側抽屜式篩選

          右側抽屜式設計其實是比較綜合類的篩選設計,通常情況下跟下拉式彈窗設計結合使用。通常展示了不同的篩選形式,例如標簽式篩選、折疊式篩選、填鴨式篩選等等??傊斘覀冃枰故静煌Y選形式的時候推薦使用右側抽屜式篩選設計。

          總結

          這里我們針對不同的使用場景總結出了十大篩選類型,分別為:標簽式篩選、左側導航式篩選、下拉式篩選、折疊式篩選、浮層引導式篩選、橫條式篩選、彈窗式篩選、填鴨式篩選、日期篩選、右側抽屜式篩選。

          相信我們在以后設計篩選模塊的時候不至于束手無策了,希望本篇對您有幫助!

          作者:角馬X ,口袋理財UED設計經理 公眾號:海鹽社

          本文由 @角馬X 原創發布于人人都是產品經理。未經許可,禁止轉載

          題圖來自Unsplash,基于CC0協議

          eb爬取是從Web上收集和解析數據的過程。Python社區已經開發出一些非常強大的web爬取工具。其中,Pandas read_html()是從html表中爬取數據的一種快速方便的方法。

          在本文中,你將學習Pandas read_html()來處理以下常見問題,并幫助你進行web爬取。

          1.從字符串讀取表

          2.從URL讀取表

          3.從文件讀取表

          4.使用parse_dates分析日期列

          5.使用converters顯式轉換類型

          6.多索引、標題和索引列

          7.用match匹配表

          8.使用屬性篩選表

          9.使用缺失值

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


          1.從字符串中讀取表

          在第一個示例中,我們將從字符串中讀取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>
          """

          要從字符串中讀取表,請執行以下操作:

          dfs=pd.read_html(html_string)

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

          >>> type(dfs)
          list

          如果要獲取表,可以使用索引訪問它:

          dfs[0]

          結果看起來很棒。讓我們看看dfs[0].info()的數據類型。默認情況下,數值列被轉換為數值類型,例如,year和cost列分別被轉換為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。讓我們通過一個例子來看看這是如何工作的。

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

          與從字符串讀取相同,它返回一個數據幀列表。如果我們運行len(dfs),我們可以從給定的URL得到31個表。

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

          下面是dfs[6]的一個例子:


          3.從文件讀取表

          Pandas read_html()接受一個文件。讓我們通過一個例子來看看這是如何工作的。

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

          注意:以下教程將從字符串中讀取數據,因為隨著時間的推移,網頁內容可能變更。


          4.使用parse_dates分析日期列

          日期列作為對象數據類型讀取。要正確讀取日期列,可以使用參數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顯式轉換類型

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

          ID=0001

          此外,有時可能需要顯式地進行類型轉換以確保數據類型的完整性。對于這些要求,我們可以使用參數轉換器顯式地進行類型轉換:

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

          6.多索引、標題和索引列

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

          下面是一個在<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>
          """

          它創建多重索引,因為<thead>中有多行。

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

          指定標題行:

          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匹配表

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

          我們通過一個例子來看看這是如何工作的。

          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>
          """

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

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

          8.使用屬性篩選表

          參數attrs接受任何有效的HTML標記屬性的字典來篩選表。例如:

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

          id是有效的HTML標記屬性。


          9.使用缺失值

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

          下面是一個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>
          """

          以默認設置讀取。

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

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

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

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

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

          當數據幀已經創建好后,我們可以使用pandas replace()函數來處理這些值:

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

          結論

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

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

          謝謝你的閱讀。請查看Notebook的源代碼,如果你對機器學習的實際方面感興趣,請繼續關注:https://github.com/BindiChen/machine-learning/blob/master/data-analysis/024-pandas-read_html/pandas-read_html.ipynb。

          、篩選請求

          1. 使用過濾,需勾選User Filter才會生效,運行當前的過濾規則,需點擊Run Filterset now

          1. Hosts:主機過濾之局域網過濾

          • No Zone Filter:默認選項,不設置區域過濾器
          • show only Intranet Hosts:只顯示內網的Hosts,即過濾掉外網的Hosts。此時,只顯示URL請求目標服務器在內網的請求
          • show only internet Hosts:與上相對應,只顯示外網的Hosts
          1. Hosts:主機過濾之廣域網過濾

          • No Host Filter:默認選項,不設置過濾主機IP條件
          • Hide the following Hosts:隱藏輸入到下面文本框中的Hosts
          • Show only the following Hosts:僅顯示輸入到下面文本框中的Hosts
          • Flag the following Hosts:標識下邊輸入的主機名的會話(加粗)
          1. Client process:客戶端進程過濾

          • Show only traffic from:指定只顯示哪個Windows進程中的請求,右側會列出當前所有的 Windows 進程。
          • Show only Internet Explorer traffic:只顯示IE發出的請求。
          • Hide trafficfrom service host:隱藏來自service
          1. Request header:請求頭過濾

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

          • Break request on Post:對所有Post請求設置斷點
          • Break request on GET with query string:對所有帶參數的 GET 請求設置斷點
          • Break on XMLHttpRequest:對所有Ajax請求設置斷點
          • Break response on Content-type:對響應報文中header字段中,Content-Type屬性匹配成功的請求設置斷點
          1. Response Status Code:響應狀態碼過濾

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

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

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

          二、修改請求參數之臨時修改參數

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

          1. Fiddler命令行輸入urlreplace wd=csdn wd=js回車,回到瀏覽器點擊百度一下,會發現雖然搜索的是csdn,但是查出來的是js相關的信息,這種方法關閉Fiddler之后就會失效

          三、斷點修改請求參數

          1. 在請球之前攔截請求,以剛才的csdn為例

          1. 點擊百度一下,會發現已經進入Fiddler斷點

          1. 點擊請求,點擊Inspectors>WebForms,修改參數中的wd為js,點擊Run to Complation,會發現雖然搜索的是csdn,但是查出來的是js相關的信息

          1. 這種方法修改參數,如果遇到請求參數中有時間戳的很容易造成請求失敗,而且斷點會斷住所有請求,如果想斷某個請求,最好還是做個請求篩選

          四、通過Composer修改參數

          1. 先通過瀏覽器百度csdn,Fiddler中查看Inspectors>WebView會看到搜索出來的是csdn,如果是亂碼點擊Decode解碼一下

          1. 鼠標左鍵把請求拖到Composer,在Url中找到wd,修改為js,點擊執行,查看Inspectors>WebView會看到搜索出來的是js

          1. 這種方法修改參數,如果遇到請求參數中有時間戳的很容易造成請求失敗,而且不會在瀏覽器上體現出來,相當于postman創建了一個請求,好處就是會有歷史記錄下次使用可以直接在歷史記錄里找

          五、修改請求參數之永久修改參數,FiddlerScript修改參數

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

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

          1. 打開瀏覽器搜索csdn,會發現雖然搜索的是csdn,但是查出來的是js相關的信息,這種方法關閉瀏覽器不會失效、也不用打斷點,缺點是需要熟悉.Net,不過需要什么代碼,度娘應該會給你答案

          六、修改請求腳本代碼

          1. 攔截post請求,并修改JSON格式參數
          if (oSession.HTTPMethodIs("POST") && oSession.uriContains("example.com")) {
              // 獲取請求的 Body 數據
              var requestBody=oSession.GetRequestBodyAsString();
          
              // 解析 JSON
              var json=Fiddler.WebFormats.JSON.JsonDecode(requestBody);
          
          
              // 修改 JSON 參數
              json.JSONObject["Body"]["kwy"]="value";
              // 刪除 JSON 參數
              json.JSONObject.Remove('key');
              json.JSONObject["Body"].Remove("key");
              
              // 將修改后的 JSON 轉換回字符串
              var modifiedRequestBody=Fiddler.WebFormats.JSON.JsonEncode(json.JSONObject);
              // 更新請求的 Body 數據
              oSession.utilSetRequestBody(modifiedRequestBody);
          }
          1. 攔截post請求,并修改普通參數,非JSON格式
          if (oSession.HTTPMethodIs("POST") && oSession.uriContains("example.com")) {
              // 獲取請求的 Body 數據
              var requestBody=oSession.GetRequestBodyAsString();
          
              // 修改參數
              requestBody=requestBody.replace("param1=value1", "param1=newValue");
          
              // 更新請求的 Body 數據
              oSession.utilSetRequestBody(requestBody);
          }
          1. 攔截get請求,并修改url參數,如果post請求url中帶有參數,可以把GET換成POST
          if (oSession.HTTPMethodIs("GET") && oSession.uriContains("example.com")) {
              // 獲取請求的 URL
              var url=oSession.fullUrl;
          
              // 修改參數
              url=url.replace("param1=value1", "param1=newvalue");
          
              // 更新請求的 URL
              oSession.fullUrl=url;
          }
          1. 攔截get請求,并刪除url參數,如果post請求url中帶有參數,可以把GET換成POST
          import System.Web;
          
          if (oSession.HTTPMethodIs("GET") & & oSession.uriContains("example.com")) {
              // 獲取請求的 URL
              var url=oSession.fullUrl;
              
              // 解析 URL 中的參數
              var uri=new System.Uri(url);
              var queryString=System.Web.HttpUtility.ParseQueryString(uri.Query);
              
              // 刪除指定的參數
              queryString.Remove("dt");
              
              // 構建新的 URL
              var newUrl=uri.GetLeftPart(System.UriPartial.Path) + "?" + queryString.ToString();
              
              // 更新請求的 URL
              oSession.fullUrl=newUrl;
          }
          1. 攔截get請求,并修改請求頭,如果需要修改POST請求頭,可以把GET換成POST
          if (oSession.HTTPMethodIs("GET") && oSession.uriContains("example.com")) {
              // 獲取請求的頭部對象
              var headers=oSession.oRequest.headers;
          
              // 修改頭部的值
              headers["key"]="value";
          
              // 刪除指定的頭部
              headers.Remove("key");
          }
          1. 攔截get請求,并修改cookie,如果需要修改POST請求cookie,可以把GET換成POST
          if (oSession.HTTPMethodIs("GET") && oSession.uriContains("example.com")) {
              // 獲取請求的 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")) {
              // 獲取請求的 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到控制臺,可通過log查看
          FiddlerApplication.Log.LogString("cookie: " + cookieValue);

          主站蜘蛛池模板: 中文字幕无线码一区2020青青| 国产一区玩具在线观看| 国产日韩精品一区二区三区在线| 麻豆天美国产一区在线播放| 国产午夜精品一区二区三区极品| 无码精品一区二区三区免费视频| 亚洲AV无码一区二三区| 国产综合无码一区二区色蜜蜜| 日韩精品一区二区亚洲AV观看| 国产一区二区视频免费| 国产在线精品一区二区三区不卡 | 国产激情з∠视频一区二区| 无码国产亚洲日韩国精品视频一区二区三区 | 波多野结衣一区二区| 日韩好片一区二区在线看| 国产av天堂一区二区三区| 91一区二区三区| 中文字幕Av一区乱码| 亚洲中文字幕无码一区二区三区| 国产一区二区三区免费看| 国产在线观看一区二区三区四区| 精品国产一区二区三区av片| 无码国产精品一区二区高潮| 精品乱码一区二区三区在线| 秋霞日韩一区二区三区在线观看| 精品免费国产一区二区三区| 国产在线观看一区二区三区四区 | 免费av一区二区三区| 亚洲乱码一区二区三区在线观看| 亚洲色精品aⅴ一区区三区| 日本免费电影一区二区| 无码aⅴ精品一区二区三区浪潮| 久久人妻内射无码一区三区| 精品一区精品二区制服| 国产一区二区不卡老阿姨| 免费萌白酱国产一区二区| 中文字幕不卡一区| 精品一区二区三区无码免费视频| 国产精品一区二区久久精品| 日韩一区在线视频| 中文字幕一区二区三区日韩精品|