Programming
未读Kmeans算法是选取数据的中心点,将数据按照距离中心点的距离进行分类,从而将数据分成K类。是一个聚类算法。
下面展示脱离机器学习库,Python手写Kmeans算法的代码。
Kmeansimport random# 假设有一些数据data = [[1, 2], [1, 4], [1, 0], [4, 2], [4, 4], [4, 0]]# 设置分类数量K = 2# 随机选取中心点x, y = random.randint(0, len(data)-1), random.randint(0, len(data)-1)centerPoint = [data[x], data[y]]print("center: ", centerPoint)# 结果保存为字典格式cate_data = {}# 计算欧氏距离并将所有的点分类for i in range(len(data)): distance1 = ((data[i][0] - centerPoint[0][0])**2 + (data[i][1] - centerPoint[0][1])* ...
Programming
未读在使用Selenium设计爬虫的过程中,其实很多时候浏览器是不用打开的,但是为了方便调试,我们往往会在本地打开浏览器,如果确实不需要打开浏览器,我们可以把浏览器设置为Headless模式,这样就可以避免打开浏览器,节省资源,但是有时候,目标网站会检测到你的爬虫,导致爬虫无法正常运行,本文就此问题介绍解决方法。
1.设置请求头 user-agent在浏览器Chrome(下文都称呼为Chrome)中,正常情况下和Headless模式下的请求头是有差别的,所以目标网站可以很容易的根据Headless模式下的请求头来分辨出程序是否为爬虫脚本,从而阻止程序。所以,我们可以通过设置请求头来模拟浏览器,从而避免被反爬虫机制检测到。
from selenium import webdriveroptions = webdriver.ChromeOptions()options.add_argument('--headless') # 设置为无头模式
2.设置分辨率Chrome浏览器在Headless模式下,浏览器默认的分辨率是800*600,很多情况下,目标网站会检测到分辨率,从 ...
Programming
未读使用 selenium方法进行自动化测试或爬虫中,会遇到很多网页需要用户登录的情况。
1. 使用 selenium内置的 options模块读取用户本地配置使用这种方法前,你需要确保你本地浏览器已经有访问目标网站的配置。需要事先本地访问目标网站,登录后保存登陆状态信息并保存密码等操作。
import osfrom selenium import webdriver# 通过os模块读取本机登录用户名username = os.getlogin()# 根据本地chrome安装路径,找到用户目录 保持浏览器设置信息userPath = 'C:/Users/{}/AppData/Local/Google/Chrome/User Data'.format(username)# 初始化options模块options = webdriver.ChromeOptions()# 添加用户信息到optionsoptions.add_argument('user-data-dir={}'.format(userPath))# ...
Programming
未读在开发过程中,尤其是深度学习或者时数据处理时,程序长时间的运行总是会让广大程序员产生怀疑、后怕、自卑、发毛的情绪。因此,在程序设计中加入进度条就显得很有必要了。
1. tqdm的安装安装很容易,进入到工作环境直接安装,如果不分环境就全局安装即可。
pip install tqdm
2. 导入 tqdm 注意:踩坑记录,导入并非直接导入包名,否则会报错。
from tqdm import tqdm, trange
tqdm的使用from tqdm import tqdm, trangefrom time import sleep'''参数说明:(带*号的默认不填即可) iterable, 需要传入的可迭代对象,作为整体进度条的尺。 desc, 进度条的描述内容。 ncols, 进度条的长度,可认为更改,建议更改为合适终端的长度。 *total, 迭代次数,默认为iterable的长度。 *leave, 布尔值,表示是否保留进度条。 *file, 进度条保存路径,默认保留在 ...
Programming
未读使用Hexo搭建个人博客时,插图片总是无法被读取。在网上查找了很多资料,都是让你安装hexo-asset-image插件,并且将根目录下的配置文件中的post_asset_folder设置为true。然而,我的亲身实践经历证实了这并不管用。
我在一篇博客中引用了我source/Photos/目录下的图片。并且经过检查我的相对路径是完全正确的,但是在博客页面中出现了报错。
目录结构为:
网页端报错为:
可以看到,我的本地目录经过指令hexo deploy -d构建后,网页读取的图片地址是https://kimbleex.github.io/.com//Photos/Github_Commands/get-github-links.jpg,相比于正确的应该被读取的地址/Photos/Github_Commands/get-github-links.jpg,多出了两个前缀,还多出了一个/,这显然是地址转化的过程中的问题。
OK事情又回到了本源,我在插入图片时,为了让hexo自动转化图片的地址,下载了hexo-asset-image插件,现在地址出现了问题,这显然是它的锅。
于是,我打开了 ...