自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 【JS】JavaScript内置对象

内置对象浏览器对象

2021-07-26 12:40:05 198

原创 【JS】JavaScript快速介绍

虽然说java和javaScript是两个两个完全不同的东西,但是有些基础的东西是所有高级语言通用的。这里的快速介绍笔记只记录javaScript的不同的内容。

2021-07-24 10:55:24 180 1

原创 【JS】JavaScript的事件驱动和处理

事件和时间驱动常用事件时间处理程序

2021-07-24 09:34:38 441

原创 【JS】JavaScript应用于HTML页面

在HTML标记中直接添加用script标记连接

2021-07-23 21:51:55 213 1

原创 【python】数据可视化1:matplotlib

matplotlib模块可以数据制作成图表的形式展示,更直观的看到数据的趋势和分布。在matplotlib模块中默认不显示中文且负号由方块表示,要声明中文字体显示和负号。柱形图和条形图柱状图:常用于数据的比对,使用bar()传入x轴和y轴数据绘制。附加的参数width和color可以指定柱形图柱子的宽度和颜色。import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei'] #设置中文字体(字体的英文

2021-07-23 17:17:05 607 6

原创 【CSS】盒子模型:CSS+DIV布局

顶顶顶顶

2021-07-22 21:12:21 984 1

原创 【python】PyMySQL和pandas操作数据库

目录使用PyMySQL模块操作数据库使用pandas进一步操作数据库to_sql()把DataFrame数据存回数据库使用PyMySQL模块操作数据库下载并安装pymysql模块。使用connect()函数连接到数据库。host、port为连接本地MYSQL数据库的IP和端口。user、password为登录本地MYSQL的账号和密码。database指定读取哪个数据库。charest设置数据编码。import pymysqlconn = pymysql.connect(ho

2021-07-21 22:02:36 4406 4

原创 【CSS】基本语法,选择器,常用属性,应用到HTML

目录基本语法选择器基本选择器HTML标记选择类class选择ID选择复合选择器交集选择并集选择后代选择基本语法CSS层叠样式表的基本语法为:选择器{属性1:属性值1;属性2:属性值2;...}通过选择器,把CSS样式代码应用到具体哪个元素。选择器CSS通过指定不同的基本选择器选择应用到HTML页面的哪个元素。基本选择器中ID选择器和Class选择器均可以覆盖HTML选择器。复合选择器则是对基本选择器的进一步定位。基本选择器HTML标

2021-07-21 09:46:16 154

原创 【python】read_html()处理网页中的表格数据

read_html()从网页中识别<table>读取表格类数据。可识别对象包括有:网址、本地HTML文档、request模块得到的响应对象的文本。注意read_html()返回一个DataFrame类型的列表,每一项代表网页中的一个<table>,可用切片方式指定提取第几个表格。参数io参数match参数flavor参数header参数index_col参数encoding...

2021-07-20 20:18:10 1758 2

原创 【python】【爬虫】selenium模块使用cookie登录

在以前的文章中实现了向服务器发送POST请求模拟登录的操作【发送post请求】,但遇到验证码等情况时该方法就没用了。但我们可以使用当前登录账号的cookie信息,以实现下次访问该网站时自动登录。可以利用抓包或F12,在Network页面中找到当前登录的cookies信息,但这个方法获取的cookies值不一定可以直接使用。在这里学习中提供了两种自动获取cookies并使用cookies状态实现登录的方法。使用Session对象获取cookies使用request模块中的Session对象..

2021-07-19 16:33:55 4577 1

原创 【python】【爬虫】selenium模块快速介绍

Selenium模块虽然是一个web测试工具,但在爬虫中最有意思的功能就是可以模拟鼠标点击等操作。在前面的学习中,通过抓取button指向的地址模拟鼠标点击,但在selenium中直接模拟的即是点击的操作。目录调试基本网页操作通过属性定位标签对标签的后续操作模拟鼠标操作补充弹出的页面处理等待时间调试安装了selenium模块后,还要安装浏览器对应的驱动才可以使用selenium。chrome对应驱动为ChromeDriver,Firefox对应geckodrive

2021-07-13 10:38:28 262

原创 【python】【爬虫】BeautifulSoup模块快速介绍

用法和Xpath一样,都是基于标签搜索网页源码内容。仅输出格式和写法上的不同,实际效果和应用场景相差不大。实例化对象这里使用lxml解析器,把网页源码加载为beautifulsoup对象。可以用本地的html文件或爬取的网页源码传入实例化函数进行解析。from bs4 import BeautifulSoupimport urlliburl = 'http://www.baidu.com'data = urllib.request.urlpen(url).read().decode("u

2021-07-11 23:05:00 281

原创 【python】【爬虫】get()与urlopen()的不同

在看视频的教程中常用urllib.urlopen()访问网址,但在一些新的书中使用request.get()方法请求网址。这里在“urlopen与get的区别”的基础上进行总结。返回对象不同request.get()方法返回一个requests.models.Response对象;urllib.urlopen()方法返回一个http.client.HTTPResponse对象。HTTPResponse对象调用read()可访问内容也可接decode()进行指定字符集解码;Response..

2021-07-11 19:54:34 480

原创 【python】DataFrame对象的数据处理

缺失值处理重复值处理数据排序数据筛选数据统计数值分布相关系数数据透视表

2021-07-10 15:41:09 612

原创 【python】pandas模块快速介绍

Series对象可理解为带行标签得一维数组,行标签对应每一组元素,有三种声明方式:不声明,默认序号 声明index参数设置序号 使用字典创建设置序号import pandas as pda# 使用默认序号s1 = pda.Series(['一','二','三'])# index设置序号s2 = pda.Series(['四','五','六'], index=['001','002','003'])# 字典设置序号s3 = pda.Series({'001':'七', '002':

2021-07-07 21:05:39 302

原创 【python】NumPy模块快速介绍

NumPy模块提供了数组,方便进行数据的计算,运算效率比列表的高。目录创建数组查看数组信息创建数组简单创建:array()import numpy as np# 创建一维数组# 数组中元素用空格分开a = np.array([1,2,3,4])# 创建二维数组b = np.array([1,2], [3,4])等差创建:arrange()import numpy as np# 创建 起始为1, 步长为2,结束值<=20 的等差数列# 不指定则默认 步长

2021-07-03 17:42:08 120

原创 【PYTHON】yield和return的不同

在以前的学习中,只是简单的把yield当作return进行使用。但在自动爬虫的过程中,一个函数内出现了多个yield(不是选择分支结构)。这让我重新回顾yield和return的区别。returnreturn即一个函数的出口,返回一个结果。在一个函数中遇到return即结束本函数,其后面的代码不再执行。def test(): a = 5 return a b = 10 return bprint(test())yield函数中有yield,返回一

2021-06-22 22:55:32 197

原创 【python】【爬虫】For循环实现Scrapy自动爬虫

分析URL,使用

2021-06-22 22:33:01 1800

原创 【python】【爬虫】Scrapy Crawl自动爬虫【获取新浪新闻为例】

先获取初始网址,获取该网址中的所有链接,爬取所有链接

2021-06-19 11:40:09 2420

原创 【python】【爬虫】一个Scrapy爬虫(Scrapy爬虫编辑流程)

因为修改的文件较多,建议使用pycharm打开创建好的scrapy爬虫项目进行操作。全程用notepad和cmd也可以,就是打开麻烦。pycharm中左下角有teminal控制台可以输入Scrapy指令进行操作。使用Scrapy startproject创建一个Scrapy爬虫项目,使用genspider指令按照模板创建爬虫。步骤1.在Items.py中声明需要使用的容器声明容器content2.在setting.py中开放ITEM_PIPELINES(原来这个代码块是被注释的)

2021-06-16 23:10:33 247

原创 【python】【爬虫】Scarpy爬虫的安装

本人的环境中有python3.5和anacoda,anacoda使用的是python3.8。最方便的安装方式是使用anacoda的conda命令【conda install scrapy】,Y之后等进度条就行。但此时只有python3.8的编译器中有scrpy及其支持文件twisted,在python3.5中还没有。偷懒的方式:在anacoda的安装目录中找到 Lib / site-packages 复制scrpy与twisted复制到python3.5安装目录的Lib中。这样python3.8和p

2021-06-16 21:52:38 174

原创 【python】XPath表达式

基于标签提取信息,效率相对会比正则RE快。因为HTML源码是由标签组成常用语法:标签[@属性=值]表示定位某一属性符合的标签/ 从上往下查找标签 /html:从顶端查找html标签 /html/head:查找html标签下的head标签 test() 提取标签的文本信息 /html/head/title/text():提取html标签下head标签下title标签下的文本信息 @ 提取标签的属性信息 li[@class=

2021-06-16 21:21:19 127

原创 【python】【爬虫】Scrapy爬虫常用的全局指令和项目指令

全局指令(哪里都能用)fetch:爬取指定URL,显示爬取的过程。指定 --nolog 参数可以不显示爬取的过程runspider:不建立爬虫项目直接运行指定的Scrpy爬虫文件。要进入到该文件所在的目录shell:打开Scrapy交互终端,在不启动Scrapy的情况下调试startproject:在当前目录中,创建爬虫项目创建的结构如下:第一层:同名核心目录文件夹、项目配置文件scrapy.cfg第二次(核心目录):初始化init.py、目标(容器)item

2021-06-16 15:31:38 353

原创 【PYTHON】多线程处理

多线程:在某些程序段中并行执行代码,提高工作效率实现:线程交叉执行,使用交替串行实现并行import threading # 多线程模块# class定义线程class A(threading.Thread): # 线程A def __init__(self): # 初始化线程的方法 threading.Thread.__init__(self) def run(self): # 该线程应该执行的操作 for i i

2021-06-14 10:31:21 142 2

原创 【PYTHON】【爬虫】Fiddler抓包分析

使用Fiddler,其实是把Fiddler设置为代理服务器,则该浏览器获取的网络信息都要先经过Fiddler再呈现给用户。这里推荐使用firefox进行设置相对更简单,chrome需要搭配插件。设置Fiddler与firefox先在Tools / options / connections / copy Browser Proxy Configuration URL 复制Fiddler的代理服务器URL在Firefox中 设置 / 网络设置 / 配置访问互联网的代理服务器 / 自动代理配置的

2021-06-13 20:40:02 551

原创 【python】【爬虫】urllib爬虫练习爬取服务器图片

练习爬取京东服务器图片目标:收集京东的硬盘关键字中前10页的图片。仅搜索硬盘关键字,不添加其他关键词条如品牌、容量。URL分析:查找硬盘关键字下的前几页链接,分析URL规律。下图中标黄的部分为不同的部分。 keyword和wq字段都是输入的关键字 page字段代表显示的页数,S字段表示从第几个商品开始显示 观察URL发现page字段的步长为2,S字段除了第一页外步长均为60,但尝试了在page=1,S=61和120的情况下页面均跳转至第

2021-06-13 12:10:26 336 2

原创 【python】【爬虫】urllib爬虫使用代理服务器,解决IP限制问题

什么是代理服务器,为什么要用代理服务器是一个在用户和网页服务器中间的一个服务器。用户先借助代理服务器访问网页,网页得到的是代理服务器的IP,资源经过代理服务器返回到用户。若使用用户服务器通过爬虫访问网页服务器,容易因为同一个IP在短时间内多次访问某一网页服务器而被发现是爬虫而被禁止。使用代理服务器,解决IP限制的问题怎么做import urllib.requestdef use_proxy(): urllib.request.ProxyHandler({"http":"".

2021-06-12 22:42:00 1066

原创 【python】【爬虫】urllib爬虫练习爬取新闻

练习爬取新浪新闻网首页的新闻思路:访问新浪新闻首页,考虑是否需要伪装报头 利用正则匹配从数据筛选出所有新闻的网址 把得到的所有新闻下载到本地 考虑异常处理的问题import urllib.requestimport urllib.errorimport re# 访问新浪新闻,读取数据data1 = urllib.request.urlopen("http://news.sina.com.cn/").read()# 对数据进行编码为utf-8,忽略编码错误data2 = dat

2021-06-12 14:50:33 289

原创 【python】【爬虫】伪装浏览器,解决错误码403

存在问题有些网站服务器会屏蔽爬虫(如csdn),使用爬虫会返回错误码403解决方案添加报文头的User-Agent信息,把爬虫伪装成浏览器。怎么做在需要爬取的网页中F12打开控制台,在network页中打开任一项资源,在Header栏中的Request Headers中找到User-Agent。...

2021-06-12 13:11:30 1064

原创 【python】【爬虫】URLError与HTTPError

两个都是urllib.error模块下处理异常的类。HTTPError是URLError的子类,有异常状态码和异常原因。经过处理的URLError可以代替HTTPError。URLError不被触发的情况连不上服务器 或 没有网络 不存在该URL 触发了HTTPError处理的URLErrorimport urllib.requestimport urllib.error#异常处理的try-excepttry: urllib.erquest.urlopen("http:/

2021-06-12 08:01:54 260

原创 【python】【爬虫】urllib爬虫模拟POST请求

有些网站的登录使用表单form向服务器提交POST请求的方式实现登录,但现在更常见的是把登录放在js文件中,需要抓包获取js文件进行分析。以下为简单的form表单实现登录,关注其中input的name属性对应的值。<body><form action="" method="post"> 姓名:<input name="name" type="text"/><br> 密码:<input name="pass" type="text"

2021-06-11 16:55:55 319 1

原创 【python】【爬虫】urllib爬虫模拟get请求

get请求的特点在url地址中,.com的后面有个?,?后的内容为get请求的字段。每组字段由 字段名=字段值组成,用&分开。百度搜索:.com/s + ?https://www.baidu.com/s?wd=%E6%B6%89%E5%8F%8A%E6%A8%A1%E5%BC%8F&rsv_spt=1&rsv_iqid=0x86425ec90005fd06&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-

2021-06-11 15:47:24 311

原创 【python】【爬虫】urllib库的request模块快速介绍

urlopen(url, timeout)最常用的函数,向指定的url地址发送请求,返回一个类文件对象。在python中可以像操作文件对象一样操作这个类文件对象。timeout用于指定超时时间,当向该地址发送请求超过timeout设定的时间时则视为超时失败,返回异常。import urllib.request#向百度主页发送请求#设置超过5秒未能访问则报错try: data = urllib.request.urlopen("www.baidu.com", timeout=5

2021-06-11 09:26:45 379

原创 【PYTHON】正则匹配的贪婪模式和懒惰模式

在PYTHON使用正正则表达式匹配爬虫爬取下来的内容时经常使用两种模式:贪婪模式、懒惰模式贪婪模式需要尽可能多的去匹配内容,其常用的表达式:.*【.表示识别任意除了\n外的字符,*表示识别0~n次;这里可以理解为 匹配0~n个 . 】懒惰模式(非贪婪模式)则需要精准匹配尽可能少的内容,其常用的表达式为:.*?【?表示识别0次或1次;可以理解为 匹配0~n个 . 但只匹配第一次符合规格的内容】import restr = '<button class="feedback-btn" sty

2021-06-10 16:47:54 569 1

原创 【PYTHON】正则表达式与正则匹配

正则表达式正则表达式可理解为对数据筛选的表达式,是有限个原子和元字符组成。原子:基本组成单位,每个表达式至少有一个原子普通字符组成原子 非打印字符组成原子 (不打印在输出台的字符) \n:换行 \t:tab退格符 通用字符组成原子 \w:匹配任意字母、数字、下划线 \W:与\w相反 \d:匹配任意十进制数 \D:与\d相反 \s:匹配任意空白字符,如空格、换行、缩进 \S.

2021-06-10 10:34:31 684 1

原创 【PYTHON】异常处理

在python中也有捕获异常的机制。在try块中执行代码,当出现错误时跳转到except块,然后到finally块。只需要在合理的层次捕捉异常。可以多个except块捕捉多种异常,但注意异常之间的子类关系,若在第一个except中捕捉了某父类的异常,第二个except则不能捕捉其子类的异常(已经在第一个except中被一起捕获)try: #执行该块,当出现异常则跳转到except,无异常则结束try后跳转到finally print('try...') r = 10/2

2021-06-07 17:23:35 68

原创 【PYTHON】函数、位置参数与默认参数、可变参数与关键字参数、全局变量

函数在python中的变量不用声明数据类型,定义函数同理,不用定义函数的数据类型来确定返回的数据与在其他语言中一样,函数必须先定义再调用,碰到第一个return时结束函数,该return后面的不再执行,用一个return返回多个数据时默认用元组装着传回去#用def定义函数,记得一定有冒号,缩进表示在同一代码块def test() : print('hello world')位置(必选)参数、默认参数在定义函数时声明的参数,调用函数时根据位置传入参数。若函数有多个参数,则可以设

2021-06-07 17:12:45 263

原创 【PYTHON】【数据类型】集合Set

集合Set是一个无序的、不重复元素序列只可以存不可变的对象(多个列表不可做为集合的元素)(单个列表作为集合的元素会对数据去重)#用set()创建空集合,用{}只能创建空字典而不是集合my_set = set()my_set.add(1) #向集合中放入 1#用{}创建集合my_set_1 = {1, 4, 'six'}#用set()创建集合my_set_3 = set("hello")#用set(),基于单个列表创建集合list = [1, 2, 3]my_set_2

2021-06-06 10:00:20 127

原创 【PYTHON】【数据类型】字典Dict

字典Dict是一种可变的容器模型,可存储任意类型对象,个人理解更像是用于存储一种映射关系。用 大括号{} 声明,每个键值用 冒号: 分割(声明一个key-value映射),每个队用 逗号, 分割(分开一个字典内的多个映射)。若多次对同一个 key 放入value(对同一个key多次赋值),则后输入的值会覆盖前面的值。#声明一个有三个对的字典dict = {'first':1, 'second':2, 'third':3}#直接读取字典中某一key的值,若key不存在则报错dict['f

2021-06-05 23:37:50 131

原创 【PYTHON】【数据类型】元组tuple

元组Tuple与列表List类似,Tuple的初始化使用小括号而不是中括号,初始化后不能修改,使得代码更安全。#定义一个元组tuple = (1, 2, 3)#定义一个空元组tuple = ()#定义一个只有一个元素的元组tuple = (2,)注意上面定义只有一个元素的元组的情况,加逗号是为了和数学运算符()区分开来元组不能使用列表的添加功能,其他功能与列表一样。...

2021-06-05 22:29:09 75

空空如也

空空如也

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

TA关注的人

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