Python實戰 機型自動化標註(搜狗爬蟲實現)

2021-09-07 06:55:29 字數 3397 閱讀 5178

從安卓手機收集上來的機型大都為這樣:

mi|5

mi|4c

mi 4c

2014022

kiw-al10

nem-tl00h

收集的機型大都雜亂無章,不便於做統計分析。因此,標註顯得尤為重要。

在搜狗搜尋中輸入機型進行搜尋,為了限定第乙個返回結果為zol**,加上限定詞site:detail.zol.com.cn

通過第一條返回結果的鏈結,跳轉到相應的zol頁面,解析拿到標註名稱與手機別名。

根據上面的爬取策略,我用python實現乙個簡單的爬蟲:採用pyquery解析html頁面,pyquery採用類似jquery的語法來操作html元素,熟悉jquery的人對pyquery是上手即用。

sogou爬蟲的**實現(基於python 3.5.2)如下:

time.sleep(10)為了防止sogou封禁,每爬一次則休息10s。當然,這種爬取的速度會非常慢,需要做些優化。

sogou是通過訪問頻次來進行封禁,當訪問次數過多時,會要求輸入驗證碼:

使用者您好,您的訪問過於頻繁,為確認本次訪問為正常使用者行為,需要您協助驗證。

......

通過分析html,真實的驗證碼影象需要做如下的拼接:

import urllib.request

from pyquery import pyquery as pq

import re

for i in range(100):

html = urllib.request.urlopen("").read()

dom = pq(html)

img_src = dom("#seccodeimage").attr("src")

if img_src is not none:

img_name = re.search("tc=(.*)", img_src).group(1)

anti_img_url = "" + img_src

urllib.request.urlretrieve(anti_img_url, "./images/" + img_name + ".jpg")

tesseract識別驗證碼,識別的效果的一般,等以後有時間再考慮下其他識別方法。

pytest自動化運用實戰

環境 python 3.7 由於3.0 3.5以下部分pytest可能有部分相容問題安裝建議2.7 2.9,3.5 最新 pip install pytest專屬 pytest框架包 pip install allure pytest 專屬allure的報告包後面會用到可以不安裝這裡 pip ins...

自動化測試 實戰1

媽呀。老淚縱橫。終於在老大的n次幫助下。執行出來了。我這只小菜鳥不得不驚嘆於自動化的神奇。觸屏站自助查詢 1 點查詢按鈕點不過去 public void nextstep throws exception 2 明明證件號碼取到了值,但是就輸不進控制項裡去,原來是這控制項的名字不唯一,老大幫我在web...

介面測試自動化實戰

今天終於把給公司搭建的介面測試工具調通了,下面記錄一下過程和當中踩過的一些坑。該解決方案是基於git postman newman jenkins。git的部分還沒建倉,因為目前是我乙個人負責維護,主要目的是獲取到最新的測試用例,後續將更新。jenkins是乙個ci 持續整合 工具,主要目的是方便定...