python爬蟲高階 SVG對映反爬蟲

2021-10-24 23:01:17 字數 3025 閱讀 3469

破解svg加密的字元,得到正確的字元

練習平台

一、svg的具體表現

二、css檔案

三、svg

四、舉例詳解

這裡選擇圖一為例:

已知:類名:vhkjj4

座標:(-316px -141px)----取正整數則為(316,141)

可以自行選擇其他類名進行嘗試

#!/usr/bin/env python

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

# @author : jia666

# @time : 2020/10/19 15:58

import re

import requests

class

svg_num()

:def

__init__

(self, name)

: self.class_name = name

self.main(

)def

main

(self)

: self.get_file(

)# 獲取css與svg檔案

self.init_svg(

)# svg解析

self.svg_parse(

)# svg對映

defget_file

(self)

: svg_link =

""# svg鏈結

css_link =

""# css鏈結

# 獲取svg與css檔案內容

self.svg_text = requests.get(svg_link)

.text

css_text = requests.get(css_link)

.text

self.css_text = css_text.replace(

'\n',''

).replace(

' ','')

# 將換行符與空格清除,方便下一步匹配

# 定義乙個函式用於匹配class屬性為xx對應的css引數

deffind_xy

(self, in_text, class_value)

: re_sentence =

'.%s'

% class_value

pattern = re.

compile

(re_sentence)

res = pattern.findall(in_text)

return res[0]

# 尋找出svg檔案中定義的字元大小

deffind_font_size

(self,in_text)

: fs = re.

compile

(r'font-size:(\d+)px'

) res = fs.findall(in_text)

return

int(res[0]

)def

init_svg

(self)

: text = re.findall(

'y="(.*?)">(.*?)'

, self.svg_text, re.s)

self.list_y =

self.list_text =

for i in

range

(len

(text)):

[0])

[1])

defsvg_parse

(self)

: x, y = self.find_xy(self.css_text, self.class_name)

# 找出class=vhkjj4的xy座標

real_y =

[i for i in self.list_y if y <= i][-

1]# 找出是哪乙個 y

real_text = self.list_text[self.list_y.index(real_y)

]# 找出是那個一 text

index =

int(

int(x)/14

)# 取整數下標

print

('svg類名:'

+ self.class_name +

'\n'

+'座標:'

+str

((x, y))+

'\n'

+'字型大小:'

+str

(self.find_font_size(self.svg_text))+

'\n'

+'對映字元:'

參考部落格

Python爬蟲(入門 高階)

講解方式 針對每乙個 或專題進行詳細深入的專項講解 課程亮點 具體的 資料抓取的案例和常見爬蟲問題的專項解答 課程內容 python爬蟲熱點專案,由多個 資料抓取的案例和常見問題專項解答組成 適用人群 1 希望未來從事爬蟲或反爬蟲方向工作的程式設計師。2 正在從事爬蟲工作,但對目前職業有進一步提公升...

python爬蟲基礎(3)爬蟲高階知識

cookie是指 為了鑑別使用者身份,進行繪畫跟蹤而儲存在客戶端本地的資料。本來的含義是指有始有終的一系列動作,而在web中,session物件用來在伺服器儲存特定使用者會話所需要的屬性及資訊。cookie和session他們不屬於http協議範圍,由於http協議無法保持狀態,但實際情況,我們有需...

python高階檔案和爬蟲

檔案後續 轉換文字 分辨檔案的編碼格式 num open r c users 悠然 desktop 練字 python.txt r encoding gbk text num.read print text 如圖 迴圈讀 以行為單位 num open r c users 悠然 desktop 練字 ...