注意:target.text能获取text的值,但是无法修改text值,要用target.string修改
from bs4 import BeautifulSoup
import os
with open("index.html","r",encoding="utf-8") as htmlfile:
html=htmlfile.read()
soup = BeautifulSoup(html, 'lxml') #生成BeautifulSoup对象
targets = soup.find_all('a') #所有名称为a的节点
for target in targets:
#此地不能用target.text
target.string="中卫日报("+target["href"][27:37]+")"
htfile=os.path.join(os.getcwd(),target["href"])
print(htfile)
#if os.path.exists(htfile):
# target["style"]="color:red;"
#else:
# target["style"]="color:green;"
with open("index.html","w") as fp:
fp.write(soup.prettify())
经测试网上教程可用,参考地址:
https://www.yilvhun.com/1038.html
因自己下载的是3.10.4,做链接的时候就统一用的310.
安装后效果:
存在问题:按照该方法安装后缺少ssl导致pip无法使用。
经网上查找到的解决方法:
1.编译安装openssl。系统自带的版本太低用不了,编译安装python已经吐了,这个再编译安装已经吐了,不再测试。
2.临时解决方案:
pip310 install --trusted-host mirrors.aliyun.com pytest -i http://mirrors.aliyun.com/pypi/simple/
Mixed Content: The page at 'https://' was loaded over HTTPS, but requested an insecure form action 'http://*'. This request has been blocked; the content must be served over HTTPS.
网上给的的解决方案:
在head标签中添加代码
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
要个有权力改代码并且http资源http是能访问这种方式最好
https://www.freesion.com/article/98191289626/
这种方式不用改代码,改浏览器设置即可。
区别在于我用的360浏览器没弹出上面方式的提示。
点击“加载不安全的脚本”后页面会自动刷新,然后就能正常使用了
之前的文章发在了公众号上,没在网站上发,看到有人问有x的咋处理,在这补充一下。
之前文章地址:https://mp.weixin.qq.com/s/u58ea5tuoXFmsz6MT55aAw
这里发的是通用发方法,有没有x都可以用
运行结果
查找内容(N):([0-9]{6})([0-9]{8})([0-9]{3})([0-9X]{1})
替换为(I):\1********\3\4
这里替换的是大写X,根据需要可以改成小写x,或者大小写都匹配,本质上就是正则表达式。