資料清洗 提取爬蟲文字中的電話號碼(Python)

2021-10-23 19:36:18 字數 2814 閱讀 1147

每個號碼前面帶『+』,而原始文字中有些號碼帶fax字首,為傳真號碼,需要剔除掉

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

"""created on tue aug 18 09:46:30 2020

@author: songyou han

"""import os

import csv

# 獲取cvs檔案列表函式

deffile_name

(file_dir)

: files =

for root, dirs,

file

in os.walk(file_dir)

: files =

file

#當前路徑下所有非目錄子檔案

return files

# **號碼提取函式

defextractrawdata

(source=

'raw_datas'

,destination=

'extract_phone'):

files = file_name(source)

dict

=for filename in files:

file

= source+

"/"+filename

datas = csv.reader(

open

(file

,'r'

,encoding =

"utf-8"))

data_list =

for item in datas:0]

)dict

.update(

)return

dict

defextractphonenumber

(rawdata)

:

phonenumbersdict =

for key,value in rawdata.items():

phonenumberslist =

for row in value:

row = row.lower(

).replace(

" fax"

," fax"

).replace(

" ","")

indexlist =

fax*** =

0for i in

range

(len

(row)):

if row[i]in[

'f']

: fax*** =

1continue

if row[i]in[

'+']

:if fax*** ==0:

else

: fax*** =

0

phonenumbers =

for index in indexlist:

i = index

phonenumber =

'+'# 存放單個**號碼的盒子

while row[i+1]

in['0',

'1',

'2',

'3',

'4',

'5',

'6',

'7',

'8',

'9']

: phonenumber = phonenumber + row[i+1]

i +=

1if phonenumber not

in phonenumbers:

print

("從以下文字中提取到號碼(已去重):"

+str

(phonenumbers)

)print

("........................"

)print

(row)

print

("********************===="

) phonenumbersdict.update(

)return phonenumbersdict

defwritephone

(filename,phonenumberslist)

: f =

open

('extract_phone/(號碼抽取)'

+filename,

'w+'

)for phone in phonenumberslist:

f.write(

"'"+phone+

"'")

f.write(

"\n"

) f.close(

)

rawdata = extractrawdata(

'raw_datas'

,'extract_phone'

)phonenumbersdict = extractphonenumber(rawdata)

print

("\n\n小夥子,你的**號碼提取完了,現在開始存入extract_phone資料夾中。。。。。。\n"

)for key,value in phonenumbersdict.items():

writephone(key,value)

print

("存入檔案:\t(號碼抽取)"

+str

(key)

)print

("\n存好了!!!"

)

Python爬蟲(一) 資料清洗與提取

re模組的使用 提取,匹配,替換 提取 findall 匹配 match 替換 sub 例子 sub 正規表示式 替換的字元 需要替換的字元 html re.sub n html findall 正規表示式 要替換的字元 ret re.findall pattern 1,html match 正規表...

爬蟲資料清洗之html標籤的清洗

我們平常爬取資料時,會經常有多餘的html便簽,下面我們就來清洗一下這些標籤 1,只清洗標籤,可以用正則,也可以用remove remove tags 函式 資料 雲計算 物聯網等工程技術人員,也有電子競技員 無人機駕駛員等新穎工種 你心動了嗎?哪些學校開設了相關專業值得關注?戳圖了解 轉給正在求學...

自然語言處理 資料清洗 清洗文字中html標籤

一段本文中既有文字,又有很多html標籤,很亂,需要進行清洗,下面是用python 進行過濾辣雞html的指令碼。coding utf 8 import pandas as pd import re import jieba deffilter tags htmlstr python通過正規表示式去...