2019年6月

哈哈,小编今天用python写了第一个爬虫,现在和大家分享一下,其实呢爬虫就是模拟了我们使用浏览器发送http请求,自动的批量的获取我们需要的资源,然后把获取到的资源处理下。得到我们想要的数据。小编呢这里使用的事python3,并且安装了一个依赖包requests,需要的话自己可以安装一个哦。小编这个爬虫写的比较的简单,就是爬取基本的网页,没有太高的技术水准。下面说下开发的步骤吧。
步骤:

  • 分析要爬出的网页的结构
  • 下载数据
  • 处理数据
  • 数据持久化

程序源码

import requests
import re

# 需要爬取网页的地址
url = 'https://###'

# 模拟一个http的请求
response = requests.get(url)
# 设置请求回来之后的字符串的编码格式,这个根据的事你爬取网页的编码保持一致
response.encoding = 'gbk'
# 爬取网页的源码
html = response.text
# 获取小说名称,这个需要结合你爬取的网页内容来定
title = re.findall(r'<meta property="og:novel:book_name" content="(.*?)"/>', html)[0]
# 新建一个文本来保存爬取到的数据,并且用小说名称来命名,设置编码格式
fb = open('%s.txt' % title, 'w', encoding='utf-8')

# 获取小说章节列表(根据爬取的网页数据来定)
dl = re.findall(r'<div id="list">.*?</div>', html, re.S)[0]
chapter_info_list = re.findall(r'href="(.*?)"(.*?)<', dl)

# 取出小说名称以及URL,并获取小说的章节内容
for chapter_info in chapter_info_list:
    # 取出小说名称以及URL
    chapter_url, chapter_title = chapter_info
    # 拼接章节完整的URL
    chapter_url = "%s%s" % (url,chapter_url)
    # 获取小说内容
    chapter_response = requests.get(chapter_url)
    chapter_response.encoding = 'gbk'
    chapter_html = chapter_response.text
    # 处理获取到的数据
    chapter_content = re.findall(r'<div id="content" name="content">(.*?)</div>', chapter_html, re.S)[0]
    chapter_content = chapter_content.replace(' ', '')
    chapter_content = chapter_content.replace('&nbsp;', '')
    chapter_content = chapter_content.replace('<br />', '')
    chapter_content = chapter_content.replace('<br/>', '')

    # 把数据存储到文本文件中
    fb.write(chapter_title)
    fb.write(chapter_content)
    fb.write('\n')
    print(chapter_url)

print("======end======")

在本地生成公钥和私钥

ssh-keygen -t rsa

回车之后可以设置文件名。
再回车,可以设置密码,免密做好后首次登录要求输入一次密码,就输入这里的密码。也可以不设置,那之后登陆的时候就不需要输入密码。

生成两个文件id_rsa(私钥)和id_rsa.pub(公钥)

 

发送公钥到服务器

scp id_rsa.pub user@ip:~/.ssh

注意:

  • 端口号不为22的话 scp -P id_rsa.pub user@ip:~/.ssh(P要大写)
  • 如果服务器上没有.ssh文件夹,则登录服务器输入如下命令创建mkdir ~/.ssh.并且设置该文件夹的权限:chmod 700 ~/.ssh

设置公钥文件

登录服务器后

cd ~/.ssh
cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys 

注意:该文件必须设置成600权限

本地私钥权限设置

chmod 700 -p 私钥文件

连接服务器

ssh -i ~/.ssh/证书 用户名@ip -v

计算当前时间

import datetime
datetime.datetime.now()
# 2019-06-30 10:51:14.089271
# 格式化时间
datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# 2019-06-30 10:52:05

多加(减)一天

(datetime.datetime.now()+datetime.timedelta(days=1)).strftime("%Y-%m-%
d %H:%M:%S")
# 2019-07-01 10:54:44
(datetime.datetime.now()-datetime.timedelta(days=1)).strftime("%Y-%m-%
d %H:%M:%S")
# 2019-06-29 10:55:44

多加(减)一小时

(datetime.datetime.now()+datetime.timedelta(hours=1)).strftime("%Y-%m-%d %H:%M:%S")
# 2019-06-30 11:56:46
(datetime.datetime.now()-datetime.timedelta(hours=1)).strftime("%Y-%m-%d %H:%M:%S")
# 2019-06-30 09:58:02

多加(减)一分钟

(datetime.datetime.now()+datetime.timedelta(minutes=1)).strftime("%Y-%m-%d %H:%M:%S")

(datetime.datetime.now()-datetime.timedelta(minutes=1)).strftime("%Y-%m-%d %H:%M:%S")

利用vi命令删除所有内容:

  • 用vi命令打开文件后,通过gg命令进入文件的第一行。
  • 然后再按d,再按g键就可以删除所有内容了。
  • 如果想重新在里面输入内容就按i,进入编辑模式。
  • 结束后,按Esc进入底行模式,输入wq,就可以退出保存了。

小编今天想查看下adsense的收益情况,结果后天提示收益受损风险 - 您的一个或多个网站缺少 ads.txt 文件。请马上修正此问题,以免收入严重受损。

fenxi.jpeg

解决办法:

  • 创建一个文本 (ads.txt) 文件,并且把它放在你的网站根目录下面,其实就是可以通过'http://域名/ads.txt'访问到这个文件,如果你的不能访问那是不可以的
  • 在该文件中添加以下内容:

    google.com, pub-9890532454425624, DIRECT, f08c47fec0942fa0
  • 定要修改为你自己的自己的发布商 ID 也就是pub-9890532454425624 这一段。
    获取地址:

    https://support.google.com/adsense/answer/6376922

    如果你已经登录谷歌账户了,就可以直接查看。

弄好之后就可以等待了,大约24小时内,谷歌就会抓取你的网站,然后就会消失了这个提示。

这里的数据类型一般都是date类型,不是字符串以及time类型
先说一个字符串转date的方法:

import datetime
datetime.datetime.strptime

下面我们进入我们的主要任务,计算前或者后的日期

import datetime #导入日期时间模块
today = datetime.date.today() #我们用今天的日期测试,获得今天的日期
print today #输出一下今天日期
day = today - datetime.timedelta(days=1) #用今天日期减掉时间差,参数为n天,就获得今天n天之前的日期。
print day
day = today + datetime.timedelta(days=1) #用今天日期加上时间差,参数为n天,获得今天n天之后的日期。
print day

这里的数据类型一般都是date类型,不是字符串以及time类型
先说一个字符串转date的方法:

import datetime
datetime.datetime.strptime

下面我们进入我们的主要任务,计算前或者后的日期

import datetime #导入日期时间模块
today = datetime.date.today() #我们用今天的日期测试,获得今天的日期
print today #输出一下今天日期
day = today - datetime.timedelta(days=1) #用今天日期减掉时间差,参数为n天,就获得今天n天之前的日期。
print day
day = today + datetime.timedelta(days=1) #用今天日期加上时间差,参数为n天,获得今天n天之后的日期。
print day

创建分支

  • 直接创建
    git branch dev(分支名)
  • 基于某个历史版本创建分支
    git branch dev(分支名) HEAD(历史版本)

    查看分支

  • 查看本地所有分支
    git branch
  • 查看远程以及本地的所有分支
    git branch -av 红色部分代表远端分支

    删除分支

    git branch -d dev(分支名)

    切换分支

    git checkout dev

    查看分支差异

  • 查看分支差异
    git diff dev master
  • 查看分支指定文件差异
    git diff dev master -- index

    合并分支

    合并之前先执行:git pull --rebase
    git merge --no-ff -m "备注"dev

拉取远程分支

  • 拉取远程分支,默认拉取主分支
    git clone (git地址)
  • 拉取远程指定分支
    git clone -b dev (git地址)t
  • 拉取主分支后,基于远端指定分支本次创建新分支
    git checkout -b dev origin/dev 基于远端的dev分支本次创建dev分支