
python
文章平均质量分 68
mr.ocean
持以进步,恒以为功
展开
-
python保存文件的几种方式
当我们获取到一些数据时,例如使用爬虫将网上的数据抓取下来时,应该怎么把数据保存为不同格式的文件呢?下面会分别介绍用python保存为 txt、csv、excel甚至保存到mongodb数据库中文件的方法。保存为txt文件首先我们模拟数据是使用爬虫抓取下来的, 抓取的下来的数据大致就是这样的下面使用代码保存为txt文件import requestsfrom lxml import etr...原创 2020-04-06 18:26:44 · 29824 阅读 · 0 评论 -
Linux中定时爬虫的实现
这里我使用的linux操作系统是ubuntu,所以首先在ubuntu中安装crontab1.再Ubuntu中安装crontab(1)sudo apt-get cron(服务器环境下默认安装的有)(2)使用crontab -e进入编辑页面(第一次会让你选择编辑器)①crontab -l 查看当时的定时任务2.编辑时间 分 小时 日 月 星期 命令范围 0-59 ...原创 2019-12-06 12:25:10 · 512 阅读 · 0 评论 -
APP自动化基础知识
app自动化常用操作原创 2023-03-12 22:36:21 · 455 阅读 · 1 评论 -
让selenium不自动关闭浏览器
让selenium不自动关闭浏览器原创 2022-11-24 16:09:30 · 10820 阅读 · 8 评论 -
Python连接MongoDB数据库及使用用法
这里需要使用一个第三方库 – pymongo, 没有的话可以在终端中进行安装安装命令:pip install pymongo下面做一个简单的demo# 导入模块import pymongofrom pprint import pprint# 链接服务器, 是本地服务器可不需要传入参数client = pymongo.MongoClient()# 获取数据库, 中括号中填入数据库中的名字db = client["xin"]# 获取集合, 返还当前数据库中所有集合的名字# col原创 2020-07-07 19:34:41 · 1203 阅读 · 0 评论 -
python连接redis数据库及对象的使用方法
python连接redis数据库首先需要下载一个第三方库-- redis# 下载命令pip install redis有了第三方库之后,那么就开始写代码啦,其实代码很简单,只需要创建一个StrictRedis对象就好啦,这个对象中就包含了redis中的大多数方法。代码如下。from redis import StrictRedis# host代表主机地址,port为端口号,默认为6...原创 2020-05-02 11:34:55 · 1253 阅读 · 0 评论 -
新建文件时Pycharm中自动设置头部模板信息
前言 pycharm默认是没有为我们设置模板信息的,但为了更加方便的实现代码管理,以及能够一目了然的查看到我们是什么时候写的代码,个人觉得增加一个模板信息还是很有必要的。实现方法依次点击 File | Settings | Editor | File and Code Templates, 然后选中python Script,在右边的输入框中填入...原创 2020-04-15 09:38:04 · 501 阅读 · 0 评论 -
python多进程
上期讲解了:python多线程那么这一节说说python中的多进程,那么它与线程有什么联系,在python中应该怎么实现进程的概念简单来说进程就是正在进行的程序,在windows中的任务管理器可以看到当前正在运行的程序,也就是进程。进程与程序的区别: 简单来说程序是一个没有运行的软件,而进程是已经运行起来的程序,进程可以对操作系统执行一些特殊命令,比如打开摄像头,使用键盘输入法等等在...原创 2020-03-20 16:23:58 · 164 阅读 · 0 评论 -
python多任务之多线程
我们在编写程序时,若我们编写的是一个爬虫程序,当下载数据较大时,那么单机爬虫就会显得力不从心,速度很慢并且效率也不高,那么应该怎么解决这个问题呢?我们可以使用多线程来解决它。创建多线程这里举了一个例子import threadingimport timedef sing(): for i in range(5): print("正在唱歌...") ...原创 2020-03-17 09:31:26 · 161 阅读 · 0 评论 -
python网络通信: python套接字(socket)构造TCP下载器
前言也是大家有时会想到,平常我们从网上下载数据的原理是什么?这些数据是从哪里来的,又为什么可以下载到自己的电脑上,其实这些都使用了一些特殊的协议,这里简单讲解一下tcp下载器功能的实现。TCP概述tcp介绍:tcp通信需要经过创建连接、数据传送、中止连接三个步骤。tcp通信模型中,在通信开始之前,一定要先建立相关的链接,才能发送数据,类似于生活中的打电话TCP特点1.面向连接:通...原创 2020-03-15 10:42:04 · 301 阅读 · 0 评论 -
python:利用socket打造udp聊天器
测试环境及工具python 3.7.5windows 10测试工具: ScoketToolV4pycharm 2019.3.3说明在python中,我们使用的模块是socket,因为这个模块是python的标准库,所以可以不用安装,使用的测试工具:工具下载地址UDP发送数据 - 客户端首先先写一个upd发送信息的代码,由于改写的注释都在代码中提到了,所以这里我就不多BB了。循...原创 2020-03-14 18:58:12 · 480 阅读 · 0 评论 -
python数据分析:pandas学习之DataFrame数组
开发环境pycharm 专业版(2019.1.3)python 3.7ipython 7.8.0上一小节中讲解了Serise数组: Series数组学习DataFrame数组相当于就是一个pandas中的Series容器,当进行某些操作时,DataFrame数组就能够变为Series数组了。pandas中DataFrame数组的创建首先导入包import pandas as pd...原创 2020-01-15 14:17:06 · 7463 阅读 · 0 评论 -
python数据分析:pandas学习之Series数组
为什么学习pandas学习pandas需要一些numpy学习基础:numpy学习总结虽然numpy已经可以结合matplotlib解决我们数据分析的问题,那么pandas学习的目的在什么地方呢?numpy 能够帮我们处理数值型数据,但是这还不够很多时候,我们数据除了数值之外,还有字符串,时间序列等比如:我们通过爬虫获取到了存储在数据库中的数据所以, numpy能够帮助我们处理数值,但...原创 2020-01-13 15:15:42 · 2548 阅读 · 0 评论 -
数据分析:numpy学习总结
numpy中轴的概念轴的概念:在numpy中可以理解为方向,使用0,1,2…数字表示,对于一个一维数组,只有一个0轴,对于二维数组(shape(2, 2)), 有0轴和1轴,对于三维数组(shape(2, 2, 3)),有0,1,2轴(分别对应数组的(“块”,“行”, “列”))二维数组的轴三维数组的轴:numpy读取数据import numpy as np"""numpy读取...原创 2020-01-11 18:25:28 · 914 阅读 · 0 评论 -
python数据分析: numpy入门
numpy的概念一个在python中做科学计算的基础库,重在数值计算,也是大部分在python科学计算库的基础库,多用于在大学、多维数组上执行数值运算。numpy基础import numpy as npimport random# 创建数组t1 = np.array([random.randint(2, 9) for i in range(10)])t2 = np.arange...原创 2020-01-04 16:26:41 · 162 阅读 · 0 评论 -
Python数据分析: matplotlib模块学习之绘制常用统计图
matplotlib绘制常用的统计图常用的统计图有散点图, 折线图, 条形图和直方图, 在前面我们已经讲解了折线图的基本实现,但其实绘制其他图形和折线图比起来也是相差不多的, 下面就来逐个讲解他们的不同之处吧绘制散点图 plt.scatter下面给出一个matplotlib绘制散点图的实例代码from matplotlib import pyplot as pltfrom matplot...原创 2019-12-30 17:39:02 · 782 阅读 · 0 评论 -
Python数据分析: matplotlib模块学习之绘制折线图
matplotlib模块绘制折线图的基本使用题目 假设大家在30岁的时候,根据自己的实际情况,统计出来了**你和同桌**各自从11岁到30岁每年交的女(男)朋友的数量如列表a,请在一个图中绘制该数据的**折线图**, 以便比较自己和同桌20年间的差异, 同时分析自己每年交女(男)朋友的数量走势a = [1, 0, 1, 1, 2, 4, 3, 2, 3, 4, 4, 5, 6, 5...原创 2019-12-28 15:28:24 · 833 阅读 · 0 评论 -
初入python数据分析
为什么要学习数据分析有岗位需求虽然只会一个数据分析找工作会比较困难,但是结合以往所学的python爬虫或者web前端绑在一起会更加加分,也可以突出自己的能力是python数据科学的基础当面对庞大的数据量时,仅仅使用python和数据库的语法就显得力不从心了,而且效率还会低上许多,但使用数据分析中的模块, 比如:matplotlib, numpy, pandas等就可以高效许多...原创 2019-12-27 16:48:36 · 156 阅读 · 0 评论 -
实现python爬虫的套路
实现python爬虫的套路准备url开始请求url地址的设定技巧准备start_urlurl地址规律不明显,总数不确定xpath语法获取下一页的url地址寻找url地址,部分参数再当前的相应中(比如,当前页码数和总的页码数再当前的响应中)准备url_list页码总数比较明显url地址规律明显准备url_list页码总数明确url地址规律明显...原创 2019-12-12 21:12:56 · 185 阅读 · 0 评论 -
jd图书商城爬取
目标:抓取京东图书包含图书的名字、封面图片、图书url地址、出版社、出版时间、价格、图书所属大分类、图书所属的小分类,分类的url地址,数据保存在本地思路由于爬取的数量较多,所以这里使用scrapy框架对数据进行抓取找到start_url,链接为:https://book.jd.com/booksort.html将数据抓取完毕之后保存在本地,写好item_pepiline代码# ...原创 2019-12-04 15:45:37 · 863 阅读 · 0 评论 -
分布式爬虫的房天下实战(终章)
这里我用自己的虚拟机配合这自己的windows进行分布式爬虫,先开启redis服务器,进入安装redis的环境目录,输入redis-server.exe redis.windows.conf即可开启。2.利用xshell链接到虚拟机,接下来就是步骤。编写一个scrapy_redis分布式爬虫:要将一个scrapy项目编程一个scrapy_redis项目只需要修改以下三点就可以了:1. ...原创 2019-12-03 14:05:29 · 380 阅读 · 7 评论 -
分布式爬虫的房天下实战(四)
上一节我们相当于写完了一个单机爬虫,下面将各板块的完整代码给出:ftx.py# -*- coding: utf-8 -*-import scrapyimport refrom fang.items import NewHouseItemfrom fang.items import EsfItemclass FtxSpider(scrapy.Spider): name = ...原创 2019-12-03 13:55:13 · 386 阅读 · 0 评论 -
分布式爬虫之房天下实战(三)
上一小节我们已经获取到了对所有城市的新房和二手房的链接,并交给他们所对应的函数,这一小节我们将对新房和二手房的内容进行解析首先进入新房链接页面在items.py中定义我们所需爬取的内容名称然后再进入新房页面,按下f12,查看网页结构,利用xpath语法,获取所需要的内容信息,这里先把代码附上:def parse_newhouse(self, response):province, c...原创 2019-12-03 13:49:07 · 357 阅读 · 0 评论 -
分布式爬虫之房天下实战(二)
上一篇我们已经完成了一个初始的scrapy爬虫模板,接下来开始分析我们要爬取的网页结构。首先按下F12,观察网页结构,发现每个tr标签都在这个table标签下在这个网页中,我们要获取每个城市的省份或直辖市,还有城市的名称,还有城市所对应的初始链接。第一获取直辖市/省份这里先给出代码: def parse(self, response): # 获取所有的tr标签 ...原创 2019-12-03 13:25:05 · 351 阅读 · 0 评论 -
分布式爬虫之房天下实战(一)
这里我们的目标是爬取全国所有城市的新房和二手房的信息,所以这里我们的目标网站就选用了房天下网站,域名:https://www1.fang.com/首先先分析网页,观察新房和旧房之间的url地址规律发现规律如下:这里以城市安庆为例:安庆的url地址: https://anqing.fang.com/新房url地址: https://anqing.newhouse.fang.com/hou...原创 2019-12-03 12:53:48 · 462 阅读 · 0 评论 -
【反爬虫】Scrapy设置随机请求头
随机User-Agent的构建在这里给大家推荐一个包含全球所有的user-agent的网站:网站地址效果图如下:这里我随机选了几个关于谷歌和火狐浏览器中的UA,然后再scrapy框架中的middlewares.py中新增加一个类,在里面构建了一个user-agent的列表,效果如下:```pythonclass UserAgentDownloadMiddleware(object...原创 2019-11-27 11:52:55 · 545 阅读 · 0 评论 -
抓取拉勾网中的数据
利用selenium和chromdriver进行数据抓取再使用selenium之前,我尝试过使用requests库对数据进行抓取,虽然代码也可以运行,但是比较麻烦,而且其中的cookies信息坚持不了多久,所以不能够完整的将数据给爬取下来,如下图:在这里顺便把代码也一下复制过来把,希望大家可以一起交流讨论import requestsimport timeimport jsonfro...原创 2019-11-23 17:37:26 · 348 阅读 · 0 评论 -
‘斗图啦’网站爬虫
目标: 爬取“斗图啦”的表情包前一百页虽然这是一个小爬虫,但所用到库还真不少,比如,requests,lxml,os,re等下面先把源代码献上:‘’’import requestsfrom lxml import etreeimport timeimport osimport redef parse_page(url): headers = { 'Us...原创 2019-11-20 22:34:51 · 988 阅读 · 1 评论 -
selenium的使用
selenium 的基本使用页面元素定位用法find_element_by_id(返回一个)find_elements_by_xpath(返回一个列表)find_element_by_link_text()find_element_by_partial_link_textfind_element_by_tag_name()find_element_by_class_name()...原创 2019-10-28 21:19:46 · 867 阅读 · 0 评论 -
正则表达式的基本使用
**正则表达式re库的基本使用正则表达式的表示类型re库采用raw string(原生字符串)类型表示正则表达式,表示为r’text’例如: r’[1-9]\d{5}’ Re库的主要函数功能函数 说明re.search 在一个字符串中搜索匹配正则表达式的第一个位置,返回match...原创 2019-07-06 22:33:15 · 217 阅读 · 0 评论 -
列表的基本操作
python中列表的基本操作列表的定义:列表是用来存储一串信息的,在python中使用中括号[]为标志,数据与数据之间使用逗号分隔。列表的索引是从0开始的:索引就是数据在列表中的位置编号,索引又可以称之为下标。但是如果在列表取值时,如果索引超出范围,程序会报错。列表的方法查看技巧:我们可以在ipython中自己定义一个列表,例如:some_list = [“张三”, “李四”, “王麻...原创 2019-06-28 12:11:11 · 357 阅读 · 0 评论