#requests 需要使用pip安装
import chardet
from urllib.request import urlopen
import requests
def testReadFile():
url="https://www.baidu.com"
filePathBase="E:\\test\\download\\baiduPageSourceBase.txt"
filePathCheck="E:\\test\\download\\baiduPageSourceCheck.txt"
urlCheckErrorMsg=""
checkErrorMsg=""
isCodeTheSame=False
#通过requests获取网页编码
charSet=requests.get(url).encoding
print(f"requests get charSet={charSet}")
#通过urlopen获取网页编码
html = urlopen(url).read()
print("urlopen get charSet="+str(chardet.detect(html).get("encoding")))
#根据编码解码二进制文件
pageSource = requests.get(url).content.decode(charSet)
#if os.path.exists(filePathCheck) == False:
#将读取的网页源码写入文件
with open(filePathCheck, 'w', encoding=charSet) as file:
file.write(pageSource)
file.close()
# 逐行比较两个文件的内容
isCodeTheSame = True
urlCheckErrorMsg = urlCheckErrorMsg + url + "\n"
with open(filePathBase, 'r', encoding=charSet) as fileBase, open(filePathCheck, 'r', encoding=charSet) as fileCheck:
line_number = 1
while True:
line1 = fileBase.readline()
line2 = fileCheck.readline()
if line1 != line2:
urlCheckErrorMsg = urlCheckErrorMsg + "第" + str(line_number) + "行不一样 ,\n " + filePathBase + "中内容是=" + line1 + " ,\n " + filePathCheck + "中内容是=" + line2 + " \n"
print(f"第{line_number}行不一样 ,\n {filePathBase}中内容是={line1} ,\n {filePathCheck}中内容是={line2} \n")
isCodeTheSame = False
if not line1:
break
line_number += 1
fileBase.close()
fileCheck.close()
python学习(四):python读取网页charset及读取网页源码
本文介绍了如何使用requests库获取网页编码,然后通过urllib.request和chardet库进行编码检测,并将网页源码保存到文件中。接着,文章展示了逐行比较两个文件内容的方法,以确定它们是否相同。
摘要由CSDN通过智能技术生成