自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

mjp_erhuo的博客

一个爬虫工程师的路程

  • 博客(66)
  • 资源 (4)
  • 收藏
  • 关注

原创 python对AWS—S3【存储桶】的下载,上传,追加操作

完整的代码如下:#!/usr/bin/env python3.8# -*- coding: utf-8 -*-# @Time : 2022/1/20 17:15# @Author : luoxuan# @File : test.pyimport osimport s3fsfrom setting import *from boto3.session import Sessionfrom botocore.exceptions import ClientErrorc

2022-03-22 19:26:10 3195

原创 python对日期的操作

python对周内日期的获取代码如下:import datetimedef get_current_week(): monday,tuesday,wednesday,thursday,friday,saturday,sunday = datetime.date.today(),datetime.date.today(),datetime.date.today(),datetime.date.today(),datetime.date.today(),datetime.date.today(

2022-03-11 17:33:01 1162 1

原创 requests请求自动获取返回数据的编码格式

import requestsurl = "https://www.baidu.com/"header = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'}ret = requests.get(url, headers=header)code = ret.apparent.

2022-03-09 19:33:48 1107

原创 python中怎么将xpath返回的结果再次变成HTML

import requestsfrom lxml import etree,htmlres = requests.get('https://weixin.sogou.com/weixin?query=%E6%88%BF%E4%BA%A7&_sug_type_=&s_from=input&_sug_=y&type=1&page=1&ie=utf8')html_info1 = etree.HTML(res)a = html.tostring(html.

2022-03-09 19:26:29 1265

原创 python发送带附件的163邮件

python 163带附件邮件发送

2022-02-22 15:05:30 241

原创 xpath跨级定位(parent::,following-sibling::, preceding-sibling)

获取弟节点-following-sibling::如下图:这张图上是一个弹框,这种弹框是经常见到的,往往在一个页面中也会出现很多种,那么要点这个弹框中的确定按钮其实很简单,只要//span[text()="确定"]就可以了,但是随便一个弹框都可以这样定位,弹框里的内容变化了也无法及时发现。所以,我们定位的时候要把弹框内容加上,那么如果开发人员擅自更改了内容就会及时的被发现。 那么,如何定位这个按钮而且路径中要包含弹框的内容呢?这个地方就需要用到获取弟节点的方法:following...

2021-08-31 19:22:40 2278

原创 mysql连接池实例

环境:Python 3.8.7DBUtils==2.0.2# -*- coding: utf-8 -*-# !/usr/bin/python3# @Author :luoxun# @time: 2021/8/18 19:57# @file: data_warehousing.py# @Software: PyCharmimport pymysqlfrom dbutils.pooled_db import PooledDBdb_config =...

2021-08-24 19:46:47 119

原创 pyhton多线程调用scrapy框架

# -*- coding: utf-8 -*-import threadingimport osfrom time import sleepdef crawl(): os.system('scrapy crawl spider_name -s LOG_FILE=all.log') # 不想看到控制台打印debug信息 就加 -s LOG_FILE=all.log 【将debug信息接入all.log文件】if __name__ == '__main__': wh.

2020-12-08 17:05:29 187

原创 使用reactor多线程运行scrapy

# -*- coding: utf-8 -*-import threadingfrom twisted.internet import reactor, deferfrom scrapy.crawler import CrawlerRunnerfrom scrapy.utils.project import get_project_settingsrunner = CrawlerRunner(get_project_settings())@defer.inlineCallbacksdef.

2020-12-03 16:37:11 398

原创 scrapy项目的循环启动(并去掉烦人的日志)

# -*- coding: utf-8 -*-from twisted.internet import reactor, deferfrom scrapy.crawler import CrawlerRunnerfrom scrapy.utils.log import configure_loggingimport timeimport loggingfrom scrapy.utils.project import get_project_settings# 在控制台打印日志con.

2020-11-26 11:39:09 1000

原创 centos7安装Python3.6.5的步骤和异常处理

cd 到/tmp目录下 wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz ##下载包 tar -xzvf Python-3.6.6.tgz -C /tmp ##解压 cd Python-3.6.6/ ##进入 ./configure --prefix=/usr/local make ma...

2020-11-17 17:17:03 1369 5

原创 python 中五个异步框架

Python在3.4引入了 asyncio 库,3.6新增了关键字async和await,此后,异步框架迅速发展了起来,性能上能和Node.js比肩,除非是CPU密集型任务,否则没有理由不适用异步框架。如果你是Web开发者,现在异步Web框架上有了更多选择!1、TornadoTornado 根本不是什么新框架,它最初是由FriendFeed(后被Facebook收购)在2009年发布。从一开始就提供有异步编程的功能。Tornado 不仅仅是Web框架,同时它内置了很多异步模块,可...

2020-08-26 17:20:04 250

原创 线程池创建实例

# 创建队列实例, 用于存储任务queue = Queue()# 定义需要线程池执行的任务def do_job(): while True: i = queue.get() time.sleep(1) print 'index %s, curent: %s' % (i, threading.current_thread()) queue.task_done()if __name__ == '__main__': #.

2020-08-21 15:22:15 308

原创 处理未知页面的编码问题

乱码演示url = 'https://newhouse.fang.com/house/s/#'a_li = '//div[@id="cityi010"]/a'aa = './text()'header = {'User-Agent': 'Mozilla/5.0 (compatible; Baiduspider/2.0;+http://www.baidu.com/search/spider.html)'}res = requests.get(url=url, headers=header)et

2020-07-24 15:14:16 243

原创 百度翻译接口调用实例

百度接口启用地址:https://api.fanyi.baidu.com/ 创建自己的翻译项目,并注意保留APPID和密钥# 中文翻译成英文def translate_t(myurl,httpClient,q_t): fromLang = 'auto' #原文语种[自动检测] toLang = 'en' #译文语种[英语] salt = random.randint(32768, 65536) sign = appid + q_t + str(salt) +.

2020-07-07 22:19:56 1651 2

原创 知识图谱数据库《neo4j》安装与配置

一:安装步骤Neo4j是基于Java的图形数据库,运行Neo4j需要启动JVM进程,因此必须安装JAVA SE的JDK。1:liunx环境Neo4j下载地址:https://neo4j.com/download/other-releases/#releases(社区版免费)或者直接在服务器上使用命令下载:curl -O http://dist.neo4j.org/neo4j-community-3.4.5-unix.tar.gz2:解压安装tar -axvf neo4j-commu.

2020-07-02 10:32:36 626 4

原创 Python xpath 同时取多个属性,或者取两个属性中存在的那个属性

xpath 同时取多个属性,可以使用and和or拼接使用and将两个或两个以上的属性拼接起来例:./descendant::*[@href and @lmv] 或者 .//*[@href and @lmv] 也可以使用or将两个或者多个属性拼接例:./descendant::*[@href and @lmv='电视剧'] 或者 .//*[@href and @lmv='电视剧']xpath还可以使用【‘|‘】语法例:./descendant::*[@href|@lm

2020-06-22 17:39:49 9283

转载 判断python判断一个进程是否存在

#-*- coding:utf-8 -*- def check_exsit(process_name): import win32com.client WMI = win32com.client.GetObject('winmgmts:') processCodeCov = WMI.ExecQuery('select * from Win32_Process where Name="%s"' % process_name) if len(processCodeCov) > 0: prin.

2020-06-10 18:15:20 1044

原创 Scrapy项目实战

Scrapy项目实战Scrapy是一个为了爬取网站数据、提取结构化数据而编写的爬虫应用框架。Scrapy内部实现了包括并发请求、免登录、URL去重等很多复杂操作,用户不需要明白Scrapy内部具体的爬取策略,只需要根据自己的需要,编写小部分的代码,就能抓取到所需要的数据此节我们学习下如何采用采用scrapy进行项目流程开发和配置一 项目准备工作1. 创建爬虫项目使用startproject命令创建项目scrapy startproject scrapy_proj #使用s

2020-05-29 11:34:10 516

原创 xls格式的数据表转成csv, xls>csv xlsx>csv

# -*- coding: utf-8 -*-__author__ = "lrtao2010"'''Excel文件转csv文件脚本需要将该脚本直接放到要转换的Excel文件同级目录下支持xlsx 和 xls 格式在同级目录下生成名为excel_to_csv.csv 的文件,采用UTF-8编码'''import xlrdimport csvimport os# 生成的csv...

2020-05-07 19:30:05 730

原创 Python》》flask接口补充

接口POST请求需要注意from提交的数据和json形式数据在接收后提取方式不一样(如果使用同一种接收方式会无法读取参数):from形式的请求import rquestspostUrl = 'http://192.168.4.10:10851/appV3/floor_collect'dakaNewsInfo = {} dakaNewsInfo['weixi_author'] = '...

2020-05-02 16:20:27 320

原创 flask接口Python

开始进入》》falsk接口服务端:from flask import Flask,requestimport jsonapp = Flask(__name__)@app.route("/", methods=["GET"])def test(): if request.method == 'GET': return 'hello world'...

2020-04-27 19:19:56 280

原创 HTTp的特点

HTTP 是灵活可扩展的,可以任意添加头字段实现任意功能; HTTP 是可靠传输协议,基于 TCP/IP 协议“尽量”保证数据的送达; HTTP 是应用层协议,比 FTP、SSH 等更通用功能更多,能够传输任意数据; HTTP 使用了请求 - 应答模式,客户端主动发起请求,服务器被动回复请求; HTTP 本质上是无状态的,每个请求都是互相独立、毫无关联的,协议不要求客户端或服务器记录请求相...

2020-03-31 19:24:38 299

原创 URL与URI的关系,URI解释

URI,也就是统一资源标识符(Uniform Resource Identifier)。因为它经常出现在浏览器的地址栏里,所以俗称为“网络地址”,简称“网址”URI是用来标记服务器上的资源,区分“这个”资源和“那个”资源严格地说,URI 不完全等同于网址,它包含有 URL 和 URN 两个部分,在 HTTP 世界里用的网址实际上是 URL——统一资源定位符(Uniform Resource...

2020-03-30 19:15:21 911

原创 html请求方法

Http/1.1规定了八种方法,单词必须都是大写的形式。1. GET:获取资源,可以理解为读取或者下载数据2. HEAD:获取资源的元信息;3. POST:向资源提交数据,相当于写入或上传数据;4. PUT:类似POST;5. DELETE:删除资源;6. CONNECT:建立特殊的连接隧道;7. OPTIONS:列出可对资源实...

2020-03-30 18:39:18 1974

原创 xpath语法解释--following-sibling--contains

提取节点的层级分隔符:nodename 选取此节点的所有子节点。 / 从根节点选取。 // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。 . 选取当前节点。 .. 选取当前节点的父节点。 @ 选取属性。 提取标签写法:* 匹配任何元素节点。 @* 匹配任何属性节点。 node() 匹配任何类...

2020-03-26 19:48:16 3837 2

原创 http域名

域名的解析就像 IP 地址必须转换成 MAC 地址才能访问主机一样,域名也必须要转换成 IP 地址,这个过程就是“域名解析”。访问根域名服务器,它会告诉你“com”顶级域名服务器的地址; 访问“com”顶级域名服务器,它再告诉你“apple.com”域名服务器的地址; 最后访问“apple.com”域名服务器,就得到了“www.apple.com”的地址。虽然核心的 DNS 系统遍布...

2020-03-25 19:10:01 782

原创 http学习笔记1

DNS 是将域名解析出真实IP地址的系统 URI 是统一资源标识符,标定了客户端需要访问的资源所处的位置,如果URI中的主机名使用域名,则需要使用DNS来讲域名解析为IP。 四层模型:应用层、传输层、网际层、链接层 IP协议主要解决寻址和路由问题 ipv4,地址是四个用“.”分隔的数字,总数有2^32个,大约42亿个可以分配的地址 ipv6,地址是八个用“:”分隔的数字,总数有2^...

2020-03-24 19:26:52 166

原创 企业微信群通知机器人

想使用企业微信的机器人,首先你必须拥有一个三人以上的群聊。这个是创建机器人的首要条件!在需要添加机器人的群聊上右键就可以添加自己的机器人了点击添加群机器人》》点击新创建一个机器人》》填写机器人的名字》》点击添加机器人群聊成员下方会出现如左图的图标机器人到这里就创建成功了机器人创建成功后需要复习机器人如下图中画红框的内容机器人创建成功后就该把机器人配置成通知...

2020-03-24 18:39:58 2435 1

原创 HTTP的由来与发展

HTTP 协议始于三十年前蒂姆·伯纳斯 - 李的一篇论文; HTTP/0.9 是个简单的文本协议,只能获取文本资源; HTTP/1.0 确立了大部分现在使用的技术,但它不是正式标准; HTTP/1.1 是目前互联网上使用最广泛的协议,功能也非常完善; HTTP/2 基于 Google 的 SPDY 协议,注重性能改善,但还未普及; HTTP/3 基于 Google 的 QUIC 协议,是...

2020-03-24 11:03:21 263

原创 钉钉报警机器人

一:先建立一个三人以上钉钉群聊》》》并在群设置里添加机器人二:添加机器人成功后三:复制成功后将复制的粘贴到下代码段的wedhook # -*- coding: utf-8 -*-from dingtalkchatbot.chatbot import DingtalkChatbot# WebHook地址webhook = 'https://oapi.dingta...

2019-08-28 16:11:22 519

原创 centos7安装离线ntp

安装之前先下载如下安装包autogen-libopts-5.18-5.el7.x86_64.rpmntpdate-4.2.6p5-28.el7.centos.x86_64.rpmntp-4.2.6p5-28.el7.centos.x86_64.rpm 以上3个包的下载地址 : https://download.csdn.net/download/mjp_erhuo/11085...

2019-04-03 13:18:00 6297

原创 ubuntu 18.0.4 下mongo 4.0的用户密码的设置并开启外部连接

一、创建管理员账户并赋予权限输入mongo,进入mongodb的命令页面> use admin #进入admin数据库switched to db admin> db.createUser( {user:"admin", pwd:"admin",  roles:[{role:"root", db:"admin"}] } )用户创建成...

2019-01-11 13:38:22 1116

原创 centos7搭建ntp同步服务,配置服务端和客户端

ntp服务器的搭建和客户端的配置1) 查看是否已经安装ntp[命令]  rpm -qa | grep ntp若只有ntpdate而未见ntp,则需删除原有ntpdate。如:ntpdate-4.2.6p5-22.el7_0.x86_64fontpackages-filesystem-1.44-8.el7.noarchpython-ntplib-0.3.2-1.el7.noarch...

2018-12-14 11:20:07 5132

转载 找出最有可能被 OOM Killer 杀掉的进程

最近有位 VPS 客户抱怨 MySQL 无缘无故挂掉,还有位客户抱怨 VPS 经常死机,登陆到终端看了一下,都是常见的 Out of memory 问题。这通常是因为某时刻应用程序大量请求内存导致系统内存不足造成的,这通常会触发 Linux 内核里的 Out of Memory (OOM) killer,OOM killer 会杀掉某个进程以腾出内存留给系统用,不致于让系统立刻崩溃。如果检查相关的...

2018-12-10 15:55:35 520

原创 centos7同步网络时间并修改时区

安装ntpdate工具# yum -y install ntp ntpdate设置系统时区为上海# timedatectl set-timezone Asia/Shanghai 设置系统时间与网络时间同步# ntpdate 0.asia.pool.ntp.org# ntpdate 1.asia.pool.ntp.org# ntpdate 2.asia.pool.ntp.org  ...

2018-11-09 11:36:19 2550

转载 开发高性能的MongoDB应用—浅谈MongoDB性能优化

性能与用户量   “如何能让软件拥有更高的性能?”,我想这是一个大部分开发者都思考过的问题。性能往往决定了一个软件的质量,如果你开发的是一个互联网产品,那么你的产品性能将更加受到考验,因为你面对的是广大的互联网用户,他们可不是那么有耐心的。严重点说,页面的加载速度每增加一秒也许都会使你失去一部分用户,也就是说,加载速度和用户量是成反比的。那么用户能够接受的加载速度到底是多少呢?  ...

2018-11-05 16:49:21 424

原创 centos7设置系统时间与网络时间同步

Linux的时间分为System Clock(系统时间)和Real Time Clock (硬件时间,简称RTC)。系统时间:指当前Linux Kernel中的时间。硬件时间:主板上有电池供电的时间。查看系统时间的命令: #date设置系统时间的命令: #date –set(月/日/年 时:分:秒)例:#date –set “10/11/10 10:15”查看硬件时间的命令...

2018-11-05 10:50:34 8768

原创 centos7下glances系统监控的安装

yum install epel* -yyum install python-pip python-devel -yyum install glances -yyum install iftop -y yum install htop -y    

2018-11-01 14:38:04 2787

原创 centos7的IP[配置

Linux系统安装及配置配置IP(两种方法2选1即可) 方法一: cd /etc/sysconfig/(进入网关路径) cd netowrk -scripts/(进入网关文件夹) vi ifcfg-eno1(进入vi里配置IP[①修改为static/②修改为yes/其他都是添加]) ①BOOTPROTO=static ②DEVICE=yes IPADDR=输入IP(IP) PR...

2018-10-31 18:03:33 3111

dns清理.bat (处理win桌面的远程桌面连接无法连上其他机器)

处理win桌面的远程桌面连接无法连上其他机器

2021-01-27

csv文件合并.bat

将多个CSV文件合并成一个文件 CSV全称Comma-Separated Values,它是一种通用的,简单的,被广泛采用的一种表格数据格式。采用纯文本格式存储,用分隔符号分开。它格式类似于数据库表格,每一行,中间用分隔符分开,一行就是一条记录,一列就是一个字段。它是文本格式,所以非常直观,可读。 CSV文件可以记事本软件直接打开编辑,也可以用Excel软件打开编辑。 CSV文件有几个规则:开头不能空,没有空行,不支持数字和特殊字符

2020-09-02

xpath+helper

google插件XPath Helper可以支持在网页点击元素生成xpath,整个抓取使用了xpath、正则表达式、消息中间件、多线程调度框架(参考)。xpath 是一种结构化网页元素选择器,支持列表和单节点数据获取,他的好处可以支持规整网页数据抓取。 如果我们要查找某一个、或者某一块元素的xpath路径,可以按住shift,并移动到这一块中,上面的框就会显示这个元素的xpath路径,右边则会显示解析出的文本内容,并且我们可以自己改动xpath路径,程序也会自动的显示对应的位置,可以很方便的帮助我们判断我们的xpath语句是否书写正确

2020-03-25

ntp离线安装包 autogen ntpdate ntp

ntp 离线安装包, autogen-libopts-5.18-5.el7.x86_64.rpm ntpdate-4.2.6p5-28.el7.centos.x86_64.rpm ntp-4.2.6p5-28.el7.centos.x86_64.rpm

2019-04-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除