Python爬蟲 解析百科位址

2021-10-08 21:29:46 字數 2060 閱讀 5366

記錄時間 : 2020/08/05

測試包括 : 魑、 *、$、listen()、9527

預想: 此次內容適用中文字元、符號

【特殊字元請前先自行測試】

內容記錄

使用for迴圈語句

chinese =

["魑"

,"*"

,"$"

]# 字串先變十六進製制再每兩位插入百分號

defurlframe_one()

:for name in chinese:

# name為字串,按照指定的 encoding 將字串轉換為位元組序列

namestr =

bytes

(name,

'utf-8'

)# hex() 函式用於將10進製整數轉換成16進製制

namehex = namestr.

hex(

)# text存十六進製制字串

text =

""# i存字串長度

i =len(namehex)

for n in

range

(i //2)

:# str存放擷取字串,建議從後往前擷取字元

str= namehex[i -2*

(n +1)

: i -

2* n]

# 將str從後往前串接

text =

"%"+

str+ text

print

(""+ text)

if __name__ ==

'__main__'

: urlframe_one(

)

%e9%ad%91

%2a%24

使用python迭代器

chinese =

["魑"

,"*"

,"$"

]# 字串先變十六進製制再每兩位插入百分號

defurlframe_two()

:# 生成 iter 迭代器

a =iter

(chinese)

while

true

:try

: namebytes =

bytes

(next

(a),

'utf-8'

)# print(namebytes)

namehex = namebytes.

hex(

) i =

len(namehex)

# generator 生成器

# g is generator type

# next(g) is str type

g =("%"

+ namehex[2*

(n -1)

:2* n]

for n in

range(1

, i //2+

1))# b = ("%" + str(next(g)) + str() for n in range(i // 2))

print

(""+''

.join(

list

(g))

)# stopiteration 異常用於標識迭代的完成,防止出現無限迴圈的情況

except stopiteration:

sys.exit(

)if __name__ ==

'__main__'

: urlframe_two(

)

輸出

%e9%ad%91

%2a%24

報錯記錄

報錯**typeerror: 'float' object cannot be interpreted as an integer

報錯原因python2 中整數 / 整數 = 整數,python3 中整數 / 整數 = 浮點,整數 // 整數 = 整數

python爬蟲糗事百科

coding utf 8 import urllib2 import re 工具類 class tools object remove n re.compile r n replace br re.compile r remove ele re.compile r re.s rs 引數,要進行替換的...

Python爬蟲 糗事百科

如果沒有這兩個庫 在命令列任意位置下 前提是你已經配置好了環境,這個網上大把,自行google pip install requests,pip install bs4 import beautifulsoup import requests from bs4 import beautifulsou...

爬蟲 糗事百科爬蟲

糗事百科爬蟲 寫這個爬蟲花了我相當相當多的時間,因為總是爬著爬著就看這糗事百科上的段子去了。環境 python 3.6 import csvimport json import random import requests from bs4 import beautifulsoup class qi...