Arch Linux 安装教程

前话 最近老作死美化linux,在系统上装装卸卸,导致一些环境依赖包缺失,又不知道具体缺失哪些,所以就只能重装,借这次重装写篇教程,此篇教程大都来源于CSDN的 ArchLinux安装图文教程,但发现此教程稍微有些地方需要修改了,这里会详细说明。 教程 制作镜像 准备Arch Linux镜像和Ultra ISO软件 Arch Linux 镜像下载链接:点此直达 Ultra ISO下载链接:点此直达 用Ultra ISO打开Arch Linux镜像,插上U盘,点启动,写入硬盘映像,选好U盘,最重要的一点是,写入方式一定要选RAW!!! 之前做了很多次启动U盘都不能安装。 开机 选择U盘启动后,选择第一个,然后进入U盘系统的命令行界面。 进行联网 WIFI的执行: wifi-menu 网线的一般都会直接连接,有没有连接网络可以用Ping测试。 同步时间 timedatectl set-ntp true 编辑镜像站文件 CSDN的教程的163的镜像路径会出现一些包找不到,用下面的路径则没这个问题。 ano /etc/pacman.d/mirrorlist 在文件最前面添加以下条...

Scrapy利用Selenium和Xvfb实现非图形界面爬虫

前言 最近在做一个天眼查的爬虫,直接用Scrapy爬会被识别为电脑,然后需要验证码,更改时间间隔都没用,后来发现是cookie的缘故,在请求天眼查的网页时发现cookie一直在变。所以Scrapy直接爬如果没办法解决验证码的问题是肯定失败,由于PhantomJS不是真正的浏览器,所以用PhantomJS也不行,所以最终的想到用Selenium控制Chrome浏览器来访问。写好发现设置好时间间隔,并不会出现验证码。最终代码写了3800多行,因为还涉及到N多的模拟点击,然后做测试发现要爬太久了,小公司一两分钟左右,但大公司可能要十多分钟,太难等,也太耗费电脑性能,所以我就想把爬虫放在服务器上跑,然后发现SSH命令是打开不了GUI程序的,运行爬虫也不能打开Chrome。直接报错:cannot open display,然后谷歌一下,发现了这个Xvfb这个软件。 Xvfb是在虚拟内存中执行所有图形操作,而不显示任何屏幕输出。相当于创建了一个虚拟显示器。 安装Xvfb和相关插件还有chrome浏览器: sudo apt-get update && sudo apt-get install -y...

Python字符编码以及decode、encode用法区别

为什么Python使用过程中会出现各式各样的乱码问题,明明是中文字符却显示成“/xe4/xb8/xad/xe6/x96/x87”的形式? 为什么会报错“UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)”? 本文就来研究一下这个问题。 字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。 decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unicode编码。 encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串str2转换成gb2312编码。 因此,转码的时候一定要先搞明白...

Scrapy爬取Ajax页面(一)

有三种方式爬取Ajax页面 抓Json包:简单、快捷 能找到url的情况下首选使用 采用Splash插件:爬取速度快,需要Docker,部署麻烦 采用Selenium插件:爬取速度慢,需要PhantomJs 抓Json包 本文爬取网站为工信部的一个文件发布网站,爬取列表和里面的文件内容 http://xxgk.miit.gov.cn/gdnps/wjfbindex.jsp 用谷歌浏览器开发者工具里的Network找到json包的请求地址 # 第一页 http://xxgk.miit.gov.cn/gdnps/searchIndex.jsp?params=%257B%2522goPage%2522%253A1%252C%2522orderBy%2522%253A%255B%257B%2522orderBy%2522%253A%2522publishTime%2522%252C%2522reverse%2522%253Atrue%257D%252C%257B%2522orderBy%2522%253A%2522orderTime%2522%252C%2522reverse%2522%253...

Scrapy爬取Ajax页面(三)

有三种方式爬取Ajax页面 抓Json包:简单、快捷 能找到url的情况下首选使用 采用Splash插件:爬取速度快,需要Docker,部署麻烦 采用Selenium插件:爬取速度慢,需要PhantomJs Selenium插件 Selenium 是一套完整的web应用程序测试系统,包含了测试的录制(Selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此可以用于任何支持JavaScript的浏览器上。Selenium可以模拟真实浏览器,自动化测试工具,支持多种浏览器,爬虫中主要用来解决JavaScript渲染问题。 首先安装selenium库 # Python2 pip install selenium # Python3 pip3 install selenium PhantomJs安装: PhantomJs官网下载页 创建调用PhantomJs解析函数 def get_selenium_j...

Scrapy爬取Ajax页面(二)

有三种方式爬取Ajax页面 抓Json包:简单、快捷 能找到url的情况下首选使用 采用Splash插件:爬取速度快,需要Docker,部署麻烦 采用Selenium插件:爬取速度慢,需要PhantomJs Splash插件 Splash是一个Javascript渲染服务。它是一个实现了HTTP API的轻量级浏览器 首先安装scrapy-splash库 # Python2 pip install scrapy-splash # Python3 pip3 install scrapy-splash 安装Docker:Docker官网下载页 拉取Docker镜像 docker pull scrapinghub/splash 运行这个镜像 docker run -p 8050:8050 scrapinghub/splash 配置Scrapy # settings.py SPLASH_URL = 'http://localhost:8050' DOWNLOADER_MIDDLEWARES = { 'scrapy_splash.SplashCookiesMiddleware...

Python处理含有中文的文档

Python 直接open('abc.txt', 'r+')处理含有中文的文档时会报错: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 17: ordinal not in range(128) Python默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报这样的错UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128),python没办法处理非ascii编码的,此时需要自己设置将python的默认编码,一般设置为utf8的编码格式。 解决办法: f = open('abc.txt', 'r+', encoding='utf-8')...

使用证书免输密码SSH登录远程服务器

Windows Git/Linux/Mac下生成秘钥 ssh-keygen -t rsa -C "your_email@example.com" 三个回车(也可以设置密码)就生成秘钥在~/.ssh/目录下 通过ssh-copy-id的方式上传到服务器 ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@IP 然后输入服务器密码就好了...

HTTP状态码简介

状态码的类别 类别 原因短语 1XX Informational(信息性状态码) 接受的请求正在处理 2XX Success(成功状态码) 请求正常处理完毕 3XX Redirection(重定向状态码) 需要进行附加操作以完成请求 4XX Client Error(客户端错误状态码) 服务器无法处理请求 5XX Server Error(服务器错误状态码) 服务器处理请求出错 2XX 成功 200 OK 表示从客户端发来的请求在服务端被正常处理了。 204 NO Content 表示服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分。 206 Partial Content 表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求。 3XX重定向 301 Moved Permanently 永久性重定向,该状态码表示请求的资源已被分配了新的URL,以后应使用资源现在所指的URL。 302 Found 临时性重定向,该状态码表示请求的资源已被分配了新的URL,希望用户(本次)能使用新的URL访问。 303 See Other ...

MacOS和Linux终端美化安装oh my zsh

安装zsh MacOS自带zsh,所以无需安装zsh。 Linux用终端运行以下命令: sudo apt-get install zsh 设置默认打开zsh chsh -s /bin/zsh 安装Git 安装了的直接忽略这步。 # MacOS: 安装Xcode,然后运行一次。 # Ubuntu、Debian: sudo apt-get install git # CentOS: sudo yum install git 安装oh my zsh git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh 复zsh的配置文件 cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc 如果如需箭头前显示主机名等设置 echo "PROMPT=%m\ \$PROMPT" >> ~/.zshrc code info %T 系统时间(时:分) %* 系统时间(时:分:秒) %D 系统日期(年-月-日) %n 你的用户名...