閒來無事,爬取網頁玩的時候,發現某**的驗證碼是區分大小寫的,但打碼平台只能返回小寫,腫麼辦呢,想了個比較low的方法,把所有可能的結果列出來,寫個多執行緒去訪問,總有一款適合你,不廢話直接上碼。下面的方法就是將任意長度的字串列出所有的大小寫組合:
from itertools import combinations
def combination(code):
result_list =
code = code.lower()
for i in range(len(code)):
combins = [c for c in combinations(range(len(code)),i)]
for j in combins:
code_old =
for y in code:
for z in j:
code_old[z] = code_old[z].upper()
return set(result_list)
a = combination(code="abcd")
print a
print len(a)
結果如下:
set(['abcd', 'abcd', 'abcd', 'abcd', 'abcd', 'abcd', 'abcd', 'abcd', 'abcd', 'abcd', 'abcd', 'abcd', 'abcd', 'abcd', 'abcd', 'abcd'])
16
之後就可以起個執行緒池去爬取了。
2023年10月24日
新方法,利用笛卡爾積運算得到結果
from itertools import product
for x,y,z,f in product(['a','a'],['b','b'],['c','c'],['d','d']):
print(x,y,z,f)
a b c d
a b c d
a b c d
a b c d
a b c d
a b c d
a b c d
a b c d
a b c d
a b c d
a b c d
a b c d
a b c d
a b c d
a b c d
a b c d
python 爬取12306驗證碼
import ssl import urllib2 i 1import time while 1 不加的話,無法訪問12306 time.sleep 1 有時需要加延時,以防被封。i i 1 f.write data f.close 以下就是爬取的 的截圖 12306的驗證碼經常讓人眼花繚亂,眼睛仔...
隨機驗證碼 python
功能 隨機驗證碼 日期 01 22 2019 注意 randrange 返回乙個遞增集合的隨機數,使用它必須匯入random包 randint 返回乙個隨機數 chr 返回乙個字元,以整數為引數 import random def check code check code for i in ran...
python爬蟲 爬取驗證碼並識別
步驟 呼叫平台 這裡使用的是超級鷹 提供的示例 進行資料識別 爬取古詩文網登入介面的驗證碼並識別 from lxml import etree from hashlib import md5 import requests import self class chaojiying client ob...