Python 목록 처리 웹 페이지 표 데이터
11228 단어 python
import requests
import sys, io
import re
url = "http://www.nifdc.org.cn/CL0903/11390.html"
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0',
'Referer':'',
}
html_doc = requests.get(url=url, headers=headers).content
#
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
#
html_doc = html_doc.decode("gb18030")
# print(html_doc)
#
# pat_num = re.compile(r">((B|C)?2018[A-Za-z0-9]{5,6})
# # |R01[0-9]{4}|P3K7[1,2]1M|YHBV[A-Za-z0-9]{5,6}
# lst_num = pat_num.findall(html_doc)
# # lst_num = re.search(r">((B|C)?2018[A-Za-z0-9]{5,6})
# print(lst_num)
pat = re.compile(r'(.+?)')
lst = pat.findall(html_doc)
# print(len(lst))
# print('table_data:
', lst)
# print('*' * 120)
serial_no_lst = []
for i in range(150):
serial_no = lst.index(str(i+1))
# if lst[serial_no-1] == " ":
serial_no_lst.append(serial_no)
# print(len(serial_no_lst))
# print(serial_no_lst)
# print('*' * 120)
# print(lst.count(" "))
# print(lst.index(" "))
#
count = 0
while count+1 < 150:
if serial_no_lst[count] >= serial_no_lst[count + 1]:
# print('the %d number is not in order' % (count+1))
pass
# count += 1
else:
# print('ok--%d' % (count+1))
pass
# count += 1
count += 1
# print('4th: ', serial_no_lst[4])
# print('95th: ', serial_no_lst[95])
# print('*' * 120)
# lst_ck = []
# for item in serial_no_lst:
# elem = lst[item]
# lst_ck.append(elem)
# print('lst_ck--%s:
%s' % (len(lst_ck),lst_ck))
serial_no_update_lst = serial_no_lst[:]
serial_no_update_lst[4] = int((serial_no_update_lst[3] + serial_no_update_lst[5])/2)
serial_no_update_lst[95] = int((serial_no_update_lst[94] + serial_no_update_lst[96])/2+1)
# print(' 1-150 :
', serial_no_update_lst)
# print('4th: ', serial_no_update_lst[4])
# print('95th: ', serial_no_update_lst[95])
# print('*' * 120)
# print('lst[81]:', lst[81])
# print('lst[1594]:', lst[1594])
print('*' * 120)
# lst serial_no_update_lst
table_row_lst = []
title_row = lst[:serial_no_update_lst[0]]
table_row_lst.append(title_row)
for i in range(149):
tmp = lst[serial_no_update_lst[i]:serial_no_update_lst[i+1]]
table_row_lst.append(tmp)
last_row = lst[serial_no_update_lst[149]:]
table_row_lst.append(last_row)
print('table_row_lst:
', table_row_lst)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.