Python爬虫
文章平均质量分 65
ShengXIABai
努力学习
展开
-
Python学习 Day60 12306抢票 08
12306抢票一、登录功能原创 2021-07-14 22:19:50 · 525 阅读 · 6 评论 -
Python学习 Day59 页面等待 07
页面等待因为现在页面多使用Ajax请求,难以确定元素在当前时刻是否存在,若要使用的元素在当前时刻不存在,那么程序就会报错,解决的方案就是等待一、selenium提供的两种等待方式隐式等待调用driver.implicitly_wait,在获取不可用的元素之前,会先等待N秒钟的时间显示等待显示等待是表明某个条件成立后才执行获取元素的 操作也可以在等待的时候指定一个最大的时间,若超出此时间就抛出一个异常selenium.webdriver.support.excepted_conditio原创 2021-07-11 20:53:03 · 145 阅读 · 1 评论 -
Python学习 Day59 selenium操作Cookie 06
selenium操作Cookie一、相关操作1.获取所有cookie信息driver.get_cookies()2.获取指定cookie信息sriver.get_cookie(‘BAIDUID’)3.添加cookie信息driver.add_cookie({‘name’:‘zhangsan’,‘value’:‘123456’})4.删除cookie 信息driver.delete_cookie(‘zhangsan’)driver.delete_all_cookies()二原创 2021-07-11 20:18:20 · 173 阅读 · 1 评论 -
Python学习 Day59 selenium行为链 05
selenium行为链一、行为链概述1.为什么需要行为链网站反爬:网站在服务器端设置验证程序,判断浏览器操作行为是否符合人类的行为有更多的复杂操作,在自动化测试中经常使用2.行为链如何使用(1)导入from senlium.webdriver.common.action_chains import ActionChains(2)创建对象actions = ActionChains(driver)(3)移动到某元素actions.move_to_element(element)(4)文原创 2021-07-11 19:51:36 · 227 阅读 · 3 评论 -
Python学习 Day58 selenium操作表单元素 04
selenium操作表单元素原创 2021-07-07 20:47:27 · 184 阅读 · 3 评论 -
Python学习 Day57 selenium定位元素 03
selenium的基本使用一、close与quit的基本区别diver.close():关闭当前页面driver.quit():关闭浏览器窗口from selenium import webdriverimport time#构造浏览器chrome = webdriver.Chrome()#请求的URLchrome.get('http://www.baidu.com')#休眠time.sleep(5)#关闭当前页chrome.close()#5s后关闭浏览器窗口time.sl原创 2021-07-04 20:47:02 · 116 阅读 · 3 评论 -
Python学习 Day56 selenium 02
selenium一、selenium简介selenium是一个web自动化测试工具,可以直接运行在浏览器上selenium支持所有主流的浏览器selenium可以根据我们的指令,让浏览器自动加载页面,获取需要的数据、基础页面截图等selenium非Python标准模块,需要安装安装方式pip install selenium -i http://pypi.douban.com/simple --trusted-host pypi.douban.com安装浏览器插件ChromeDiver原创 2021-07-03 21:00:05 · 155 阅读 · 2 评论 -
Python学习 Day56 动态网页爬虫 01
动态网页爬虫一 相关概念1.动态网页在网页不重新加载的情况下,通过Ajax技术动态更新网站真难过的局部数据如王者荣耀的高清壁纸,在换页的过程当中,URL没有发生改变,但是壁纸动态的更改了2.Ajax(Asynchronouse JavaScript And XML)异步JavaScript和XML前端与服务器进行少量数据交换,Ajax可以使用网页实现异步更新这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新传统的网页,如果需要更新内容,必须重新加载整个网页页面。因为传原创 2021-07-02 18:48:24 · 232 阅读 · 6 评论 -
Python学习 Day55 多线程的GIL锁 05
多线程的GIL锁GIL锁Python自带的解释器是CPythonCPython解释器的多线程实际上是一个假的多线程(在多核CPU中,只能利用一核,不能利用多核)同一时刻只有一个线程再执行,为了保证同一时刻只有一个线程在执行,CPython解释器使用了全局解释器锁GIL(Global Intepreter Lock)常见的Python解释器1.Jyphon:用Java实现的Python解释器,不存在GIL锁2.IronPython:用.net实现的Python解释器,不存在GIL锁3.P原创 2021-07-02 18:11:11 · 92 阅读 · 0 评论 -
Python学习 Day55 多线程下载壁纸 04
多线程下载王者荣耀高清壁纸网址:https://pvp.qq.com/web201605/wallpaper.shtml1.判读数据是在服务器端继承好再发回浏览器端显示的还是通过Ajax请求发送过来的方式一:点击下一页,观察地址栏是否发生变化,若无变化则是Ajax请求方式二:2.寻找真实数据源复制URL到网页中得到的数据将其复制到JSON在线解析器打开图片地址到网页中搜索没有数据用pycharm代码对图片网址进行解析#解析URLfrom urllib import p原创 2021-05-16 18:01:11 · 286 阅读 · 2 评论 -
Python学习 Day54 Queue线程安全队列 03
一、线程间的通信Condition版的生产者与消费者模式函数描述acquire()上锁release()解锁wait()将当前线程处于等待状态,并且会释放锁。可以被其他线程使用notify()和noti_all()函数唤醒。被唤醒后继续等待上锁,上锁后继续执行下面的代码notify()通知某个正等待的线程,默认是第一个等待的线程notify_all()通知所有正在等待的线程。notify()和notif_all()需要在release()之前调用原创 2021-05-15 17:39:56 · 499 阅读 · 1 评论 -
Python学习 Day54 生产者与消费者模式 02
生产者与消费者模式一、生产者消费者模式概述生产者与消费者模式是多线程开发中常见的一种模式1.生产者线程生产者线程用于“生产”数据2.消费者线程消费者线程用于“消费”数据import threadingimport randomimport timeg_money = 0#创建锁对象lock = threading.Lock()class Producer(threading.Thread): def run(self): global g_mone原创 2021-05-15 17:22:07 · 155 阅读 · 0 评论 -
Python学习 Day53 爬虫进阶——进程线程 01
进程与线程一、进程与线程概述程序程序(Program)是计算机指令的集合,用于实现特定功能进程1.启动后的程序称为进程,系统会为进程分配内存空间2.一个进程中至少包含一个线程线程1.CPU调度执行的基本单元2.一个进程中包含多个线程3.进程结束,线程一定结束,线程结束,进程不一定结束4.同一个进程中的多个线程,共享内存地址二、进程与线程的区别区别进程线程根本区别资源分配的单位调度和执行的单位开销每个进程都有独立的代码和数据控价(寄存原创 2021-05-14 17:57:00 · 1603 阅读 · 13 评论 -
Python学习 Day52 Python与MongoDB的交互操作 04
案例——链家二手房网址:https://bj.lianjia.com/ershoufang/数据:Python与MySQL交互操作案例1.创建存储数据库在mongo.exe软件中输入以下代码2.代码import requestsfrom bs4 import BeautifulSoupimport pymongoclass LianJiaSpider(): def __init__(self): self.url = 'http://bj.lianjia.原创 2021-05-10 20:27:31 · 115 阅读 · 0 评论 -
Python学习 Day52 Python与MongoDB的交互操作 03
Python与MongoDB的交互安装第三方模块pip install pymongo -i http://pypi.douban.com/simple --trusted-host pypi.douban.com使用步骤#(1)导入pymongoimport pymongo#(2)连接客户端client = pymongo.MongoClient('localhost',27017)#(3)获取数据库db = client.student 或 client['student']原创 2021-05-10 19:55:18 · 286 阅读 · 1 评论 -
Python学习 Day51 MongoD的CRUD操作 02
MongoDB的CRUD操作命令描述db.集合名.insert(docunment)数据的添加db.集合名.save(document)如果数据存在就更新,不存在就添加db.集合名.update(query,update,multi)query:查询条件,类似SQL语句update中的where部分 update:更新操作符,类似SQL语句update中的set部分原创 2021-05-06 20:17:19 · 199 阅读 · 1 评论 -
Python学习 Day50 MongoDB 01
MongoDBMongoDB是一个高性能、开源、无模式的文档型数据库,是当前NOSQL数据库产品中最热门的的一种。它在许多场景下用于替代传统的关系型数据库或键值对存储方式。MongoDB是用C++开发的一种基于分布式文件存储的开源数据库系统MongoDB将数据库存储为一个文档,数据结构由键值对(key-value)组成MongoDB文档类似JSON数据对象字段值可以包含其他文档、数组及文档数组一、MongoDB的安装1.安装绿色版无需安装直接解压即可使用(64位,32位可通用)2.原创 2021-05-05 18:00:18 · 202 阅读 · 2 评论 -
Python学习 Day49 Python与MySQL的交互操作 15
Python与MySQL的交互操作案例——链家二手房数据请求数据获取数据解析房名房型信息位置信息房屋售价每平单价关注人数/发布时间标签信息MySQL中创建数据表pycharm中创建SQL文件具体实现代码import requestsfrom bs4 import BeautifulSoupimport pymysqlclass LianJiaSpider(): # 打开数据库连接 db = pymysql.connect(host原创 2021-05-04 17:14:50 · 118 阅读 · 0 评论 -
Python学习 Day48 Python与MySQL的交互操作 14
Python与MySQL的交互操作Python与MySQL进行交互安装第三方库:mysql-connector常用操作:1.插入数据 insert2.查询数据 select3.更新数据 update创建数据库连接connect(host,user,password,database)原创 2021-04-27 20:44:29 · 812 阅读 · 4 评论 -
Python学习 Day48 MySQL数据库 13
MySQL数据库一、MySQL数据库概述MySQL是一种关系型数据库,是一种开源软件由瑞典MySQL AB公司开发,2008年1月16日被SUN公司收购。2009年,SUN又被Oracle收购MySQL软件采用双授权政策,分为社区版和商业版。由于体积小、速度快、总体拥有成本低,尤其是开发源码特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境,所以MySQL能够工作在众多不同的平台上二、MySQL数据库的安装网址:原创 2021-04-27 17:11:31 · 267 阅读 · 1 评论 -
Python学习 Day47 文件存储-openpyxl 12
openpyxl 模块一、openpyxl模块概述特点:1.可以读取和写入Excel2.需要单独安装,不包含在Python标准库里3.处理Excel数据4.处理Excel公式5.处理Excel样式6.在表格内插入图表安装与测试安装:pip install openpyxl测试:打开命令行,输入python>>>import openpyxl二、Python操作Excel文件(一)向Excel文件中写入数据1.创建工作簿对象 openpyxl.Wo原创 2021-04-24 20:36:38 · 258 阅读 · 0 评论 -
python学习 Day46 数据存储-CSV文件存储11
CSV文件存储一、CSV文件概述CSV是Comma Separated Values称为逗号分隔值,以一种.csv结尾的文件CSV文件的特点(相对于Excel文件)1.值没有类型,所有值都是字符串2.不能指定字体颜色等样式3.不能指定单元格的宽高4.不能合并单元格5.没有多个工作表6.不能嵌入图像图表二、CSV文件的创建将其保存在项目文件夹中,并在pycharm中打开,出现乱码原因:pycharm中默认编码格式为uft-8,而csv文件的编码格式是gbk解决方法:pych原创 2021-04-23 11:29:21 · 1096 阅读 · 0 评论 -
python学习 Day46 数据存储-JSON文件存储10
JSON文件存储一、概述JSON:JavaScript Object Notation,是一种轻量级的数据交换格式,它是基于ECMAScript的一个子集JSON采用完全独立于语言的文本格式JSON在Python中分别有list和dict组成二、Python中的json模块函数描述json.dumps()实现Python类型转化为json字符串,返回一个str对象,把一个Python对象编码转换成json字符串json.loads()把JSON格式字符串解码转原创 2021-04-23 09:52:49 · 173 阅读 · 1 评论 -
Python学习 Day45 数据解析-pyquery 09
pyquery解析数据一、pyquery概述pyquery库是jQuery的Python实现,能够以jQuery的语法来操作解析HTML文档,易用性和解析速度都很好前提条件:了解CSS选择器以及jQuery非Python标准模块,需要安装安装方式:pip install pyquery -i http://pypi.douban.com/simple --trusted-host pypi.douban.com测试方式:import pyquery二、pyquery的初始化方式(一)字符原创 2021-04-20 20:41:44 · 284 阅读 · 1 评论 -
Python学习 Day44 数据解析-正则表达式 08
正则表达式一、正则表达式概述正则表达式:是一个特殊的字符序列,作用是帮助用户便捷地检查一个字符串是否与某种模式匹配Python的正则模块热re,是Python的内置模块,不需要安装,导入即可...原创 2021-04-15 18:00:09 · 145 阅读 · 0 评论 -
Python学习 Day43 数据解析-BeautifulSoup 07
BeautifulSoup 解析数据一、BeautifulSoup概述1.BeautifulSoup是一个可以从HTML或XML文档中提取数据的Python库功能简单强大、容错能力高、文档相对完善,清晰易懂非Python标准模块,需要安装才能使用2.安装方式pip install bs4 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com3.测试方式import bs44.解析器BeautifulS原创 2021-04-14 17:42:29 · 354 阅读 · 0 评论 -
Python学习 Day42 数据解析-XPath 06
数据解析一、XPath解析数据(一)XPath概述XPath:全称XML Path Language是一种小型的查询语言,用于在XML文档中查找信息XPath的优点:1.可在XML中查找信息2.支持HTML的查找3.可通过元素和属性进行导航XPath需要依赖lxml库安装方式:pip install lxml(二)使用XPath选取节点表达式描述nodename选取此节点的所有子节点/从根结点选择//从匹配选择的当前节点选择文档中的节点,而不原创 2021-04-14 16:15:20 · 119 阅读 · 0 评论 -
Python爬虫 requests库
requests库(一) 安装pip命令安装Windows操作系统:pip install requestsMac操作系统:pip3 install requestslinux操作系统:sudo pip install requests源码安装下载ruquests源码:http://mirrors.aliyun.com/pypi/simple/request/下载文件到本地之后,解压到Python安装目录,打开解压文件命令行输入:python setup.py install 即可安原创 2021-02-10 22:59:12 · 361 阅读 · 0 评论 -
Python爬虫 网络请求(二)——错误解析
网络请求(二)错误解析异常处理主要用到两大类:urllib.error.URLError:用于捕获urllib.request产生的异常,使用reason属性返回错误原因urllib.error.HTTPError:用于处理HTTP与HTTPS请求的错误,它有三个属性:code:请求返回的状态码reason:请求返回错误的原因headers:请求返回的响应头信息请求时异常import urllib.requestimport urllib.errorurl='http://www原创 2021-02-10 21:05:40 · 313 阅读 · 0 评论 -
Python爬虫 Day14 网络请求(一)
网络请求(一)urllib简介urllib是Python自带的标准库中用于网络请求的库,无需安装,直接引用即可通常用于爬虫开发、API(应用程序编程接口)数据获取和测试urllib库的四大模块:(1)urllib.request:用于打开和读取URL(2)urllib.error:包含提出的例外(异常)urllib.request(3)urllib.parse:用于解析URL(4)urllib.robotparser:用于解析robots.txt文件编码import urllib.p原创 2021-02-09 00:04:04 · 314 阅读 · 1 评论 -
Python学习 Day14 爬虫开发基础(二)
爬虫开发基础(一)HTTP请求的交互过程(1)客户端浏览器向网站所在的服务器发送一个请求(2)网站服务器接收到这个请求后进行解析、处理,然后返回响应对应的数据给浏览器(3)浏览器中包含网页的源代码等内容(存在浏览器的缓存中),浏览器再对其进行解析,最终将结果呈现给用户Requests请求包含:URL、请求方式、请求参数Response响应:获取请求参数、处理请求、响应Elements:分析网页结构,获取数据Console:打印输出网站的一些信息Sources:加载网页所需要的所有源原创 2021-02-08 00:46:18 · 115 阅读 · 0 评论 -
Python学习 Day12 爬虫开发基础(一)
爬虫开发基础(一)(一)HTTP与HTTPSHTTP协议:全称是Hyper Text Transfer Protocal,超文本传输协议,是一种发布和接收HTML(Hyper Text Makeup Language)页面的方法。服务器端口号为80端口HTTPS协议:全称Hyper Text Transfer Protocal over SecureSocket Layer,是HTTP协议的加密版本,在HTTP下加入了SSL层,服务器端口号为443(二)URL与URIURL(网址):是Un原创 2021-02-06 23:38:13 · 125 阅读 · 0 评论