python requests请求禁止跳转重定向

python requests请求url,有些网站页面出现:网页不存在(404),301 & 302 跳转的问题,抓取到的页面不是原地址,而是跳转后的页面,通过使用禁止重定向来实现判断。

使用方法:allow_redirects=False

方法示例:

url = www.example.com
r = requests.get(url, timeout=20, allow_redirects=False)
status_code = r.status_code
if status_code == 200:
	print(url)

通过禁止重定向,并判断原页面状态码是否是200,实现个人需求。

使用pip的国内镜像源实现加速

pypi 镜像使用帮助

pypi 镜像每 5 分钟同步一次。

临时使用

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

注意,simple 不能少, 是 https 而不是 http

设为默认

升级 pip 到最新的版本 (>=10.0.0) 后进行配置:

pip install pip -U
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

如果您到 pip 默认源的网络连接较差,临时使用本镜像站来升级 pip:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U

CentOs如何快速安装Chrome

The Easy Way

Universal Installation Script for RHEL/CentOS 6.X/7.X

All you need to do is run our installer script and you should be good to go.

curl https://intoli.com/install-google-chrome.sh | bash

This will automatically configure and enable the official Google repository, import Google’s signing key, and install the latest google-chrome-stable executable in your path. If you’re on a RHEL 6.X flavor the it will also automatically find and install all of the unmet dependencies that would normally make the installation fail. You can rerun the script whenever you want to grab the latest version of Google Chrome and, if you’re using RHEL 7.X, then you can update the package using yum as you would with any other package.

RHEL/CentOS 7.X

Alternatively, you can add the repository manually if you’re using a 7.X version. If you’re using Amazon Linux AMI then you’re definitely on a 6.X version and need to use the installation script. Otherwise, you can run

cat /etc/redhat-release

and check the output for the version number to confirm that you’re using 7.X. For example, if you’re using RHEL 7.0 then you would expect to see something like:

Red Hat Enterprise Linux Server release 7.0 (Maipo)

You can use the official Google repository if you see a 7.X version there. To add it to your system, simply create a file called /etc/yum.repos.d/google-chrome.repo with the following contents.

[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

Then you just need to run

sudo yum install google-chrome-stable

to install the Chrome package. This will add the google-chrome-stable script in /usr/bin/. Note that this is the same thing that the installation script does on 7.X flavors, so it’s safe to use the script regardless of which version you’re on.

Python图片处理库-pillow

现在在做一个项目,用到了需要对图片进行处理,在处理之前需要知道图片的宽,高,格式等等一系列的图片详情,找到一个相应的处理库pillow,功能很强大,记录一下简单的用法。

首先是安装pillow: pip install pillow

可以安装之后,由于版本的问题,导致会报错,可以指定具体的安装版本 eg:

pip install pillow==5.2.0

然后是引入库

from PIL import Image

一定要注意大小写的问题,不然会报错,找不到库文件

最后一步就是使用了:

img = Image.open(‘1.jpg’)

这里可以是相对路径,也可以是绝对路径,

然后读取相应的参数

img.size

img.width

img.hight

img.format

(640, 359)
359
640
JPEG

Selenium如何定位到canvas以及如何单击canvas上的元素

最近在做一个自动化的上传项目,碰到了Selenium需要点击canvas上的元素关闭网页蒙层的问题? 想了好久一直没有解决,在网上搜索和实践,终于找到解决方法。

1.定位canvas

这个比较简单,有很多方法,比如 find_element_by_id()

2.点击canvas中的元素,关闭蒙层

这里需要用到 ActionChains 这个类,它是继承selenium.webdriver这个父类,

使用方法也比较简单,主要是操作鼠标,移动到那个关闭按钮的坐标上

ActionChains(driver).move_to_element_with_offset(canvas,590,190).click().perform()

这里做下简单的解释,driver是浏览器的实例,move_to_element_with_offset() 通过相对定位找到元素,canvas是这个canvas画布,click()是鼠标的单击操作,perform()是执行操作,590是元素到左边边框的距离,190是元素到顶部边框的距离。

这样一行命令就完美解决了问题,关闭了网页上的canvas蒙层!

给出参考链接: https://www.pythonf.cn/read/99311

迅搜-简单易用的专业全文检索技术方案

在全文检索方面,有很多工具可以用来选型,比如业界最流行的elasticSearch,Sphinx,这些个服务,性能确实不错,但是存在一个问题,就是不适合单机,以elasticSearch为例,以前在运维工作中,配置过ELK,这个elasticSearch需要配置最大使用内存和最小使用内存,默认是2G,这个配置对于个人的小站来说,已经严重超阈值了,我的这台ECS就1G,跑了很多服务,不能在搞一个Elasticsearch,一启动就会GG,不信可以试试,记得先做镜像。

那么对于小型服务器来说,个人推荐xunSearch,比较适合单机的ECS,内存占用不高,很适合小站点来处理全文搜索!

后面会陆续给大家分享,我的站点是如何来使用xunserach来完成搜索的!

程序员赚钱系列-网课讲师-5

另外还有一个坑点就是需要缴税,因为官方签的是劳务合同,是需要缴税的,当时第一笔到手的稿费也就1300多,花费差不多2周的时间,当然不是2周的全天时间,而是周末的时间,虽然薪酬不多,当然也是很开心。 因为自己的课发布了上去,自豪感爆棚,以前幻想过当老师的满足感,找到了。

还是放一张图片看看。

录制完成后,收款需要等待课程的审核,审核通过完成之后基本就可以收到打款,官方的效率其实还是挺高的。

其实当时就是想赚钱,没想过这套课已经影响了10w从业者,现在不建议大家去学习了,因为这套在2015年录制的,有些流程估计已经走不通了,但大致的思路是没问题的!

程序员赚钱系列-网课讲师-6

这个“网课讲师”这个专题的最后一篇,尽可能把所有未尽的事宜交代清楚,随着第一套课录制完毕之后,我又陆续出了微信开发的提升篇,高级篇,实战篇等系列课程,讲师的报酬从1750涨到了2500,录制通审后陆续都收到相应的报酬,但是之后官方(慕课网)就改变方向了,因为免费课已经足够多了,他们要赚钱盈利,就需要推出付费课,就是后面的实战课。

免费课的时长一般要求2小时之内,实战课要求至少10小时,我后面尝试录制一套10小时的课程《从零开始构建微信营销活动》,但由于种种原因,未能通过实战审核,就还是被定为了普通课程。简单做了下面的图表进行两种课程的对比:

时长审核机制回报收益收益类型
免费课2小时以内较严2500元/小时一次性付清
实战课至少10小时很严50%持续性收益

如果是实战课的话,收益还是比较可观,因为是只有人购买了该课程,比如400元,那么作者就可以收益200元,如果课程很受欢迎,那么一套课程上几个W不难,来吧截图给大家看看

这么一套课作者可以分到 75*20265 =151w,当然需要交税,但是是持续性的,只要官方还在,那么就肯定会给作者进行分红。

现在不过再想去搞免费课很难了,因为官方要赚钱,肯定多出付费课,少出免费课,免费课只是起到一个吸引的作用,偶尔才会给出几个免费课名额,程序员太多,BAT也有不少的人在盯着,所以一般的程序员想录课基本排不上,原因很简单,你的title不够响亮,现在官方里面有大量跟我一样的讲师,录制过一些免费课,后面就GG了,还不少,算是被隐性淘汰了,后期官方也不会主动找你了。

另外实战课门槛也更高了,先不说录制时长和要求,title至少要是知名互联网公司的员工或者知名的技术宅,毕竟这些个title很吸引小白,毕竟官方要商业化盈利,肯定怎么能吸引怎么来,说白了,官方的课程主要是挣小白和刚入门菜鸟的钱,至于已经工作过几年的老鸟,要学个东西,哪里还找不到视频资料呢?

差不多的把网课讲师这个模式说了一遍,也发表了自己的浅见,算不上吐槽,只是陈述,毕竟商业行为是能理解的,这个网课讲师目前来看,赚钱是没问题的,还相当可观,不过必须要有深厚的技术功底,另外title很重要,不合适小白。

程序员赚钱系列-网课讲师-4

在试听结束之后,官方(慕课网)邮寄发来了合同书,上面列举了一些条款,说下当时我的薪酬是1750元/小时,然后我签字之后就回寄一份过去了,当时没有注意里面的坑。

1750元/小时,看似很高哈,来,我细说一下,那时课程官方主要是用作宣传,是免费给用户看的,所以对时间的控制特别严,一般一个课在2个小时以内,当时我录制完成第一套课程的话是1小时11分,然而被官方的剪辑师傅硬是剪到了42分,相当于少了半小时,直接少了875元,因为官方有权把作者的视频自由剪辑,所以官方会把一些它认为无意义的停顿或者空白时间都去掉,所以时间就被压缩了 ,这是比较坑的点。

程序员赚钱系列-网课讲师-3

古人云:万事开头难,确实如此,我开始试录的时候,本来反复练习了好多次,结果录制过程中,要么就是进杂音,要么声音小,要么就是录制一段时间后开始不连贯了,就是各种车祸不断,主要还是不自信。反复纠结了几次之后,然后就慢慢好了很多,第一个视频因为录制不下30次,哎,不自信的人要付出比常人更多的努力。

在录制好demo后,兴奋第一时间回传给了官方(慕课网),官方会找自己的员工来进行试听,并提出一些建议。比如语速的把控,技术名词概念的解释是否有误,以及演示网站的选择等等,事无巨细。

然后我这边认真听取官方的建议,做了一些调整和修改,然后又回传过去,终于一次过了! 接下来要开始真正的录制了!