
Python爬虫基础学习笔记
文章平均质量分 65
爬虫基础篇,包含基础知识、urllib库、requests库、正则表达式、httpx库
亦瑕
这个作者很懒,什么都没留下…
展开
-
python爬虫学习7
python爬虫学习7目录python爬虫学习7openeropener的构造使用Cookie获取网站Cookie保存cookie到磁盘openeropener位于urlopen中,有时我们不使用urlopen()方法,而是直接构造opener。opener的构造import urllib.requesturl = 'https://www.baidu.com'headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0;原创 2022-03-02 19:22:11 · 446 阅读 · 0 评论 -
python爬虫学习3
python爬虫学习3目录python爬虫学习3常见状态响应码http请求的交互过程用Chrome分析网站常见状态响应码200 请求正常,服务器正常返回数据301 永久重定向,比如访问http://www.360buy.com的时候会重定向到www.jd.com404 请求url在服务器上找不到(很常见吧?笑)418 发送请求遇到服务器端反爬虫,服务器拒绝响应数据500 服务器内部错误,可能是服务器出现BUG状态码(全):http请求的交互过程客户端浏览器向网站所在原创 2022-01-15 17:57:47 · 734 阅读 · 0 评论 -
python爬虫学习4
python爬虫学习4Session 和 cookie很多网页都是需要登录之后才能查看相应内容的。按照一般逻辑,输入用户名和密码登录网站肯定是拿到了类似于凭证的东西,有了这个凭证,才能保持登录状态,访问那些登陆之后才能访问的页面。这种凭证就是Session与cookie共同作用的结果无状态HTTPHTTP的无状态是指HTTP协议对事务处理是没有记录能力的。客户端向服务器发送请求后,服务器解析此请求,然后返回对应的响应,服务器负责完成这个过程,在这个过程中,服务器不会记录前后状态的变原创 2022-02-27 16:31:54 · 482 阅读 · 1 评论 -
python爬虫学习5
python爬虫学习5基本库的使用这里写目录标题python爬虫学习5urllib的使用四个模块urllib.parse 中的编码与解码发送请求(urllib.request)urllib.request.urlopen参数说明返回值格式发送并获取 get请求发送并获取 post请求urllib的使用四个模块request:最基本的HTTP请求模块,可以模拟请求的发送。error:异常处理模块parse:一个工具模块。提供了许多URL处理方法robotparser:主要用来识别网站原创 2022-02-28 17:41:30 · 394 阅读 · 3 评论 -
python爬虫学习6
python爬虫学习6目录python爬虫学习6urllib.request.urlopen对timeout字段的补充Request简单示例参数传入多参数构件Request使用 IP 代理urllib.request.urlopen对timeout字段的补充# 对于timeout字段,当我们在设定之后,在超过设定时间后,会抛出一个异常:import urllib.requesturl = 'http://www.httpbin.org/get'res = urllib.requ原创 2022-03-01 17:17:04 · 344 阅读 · 0 评论 -
python爬虫学习2
python爬虫学习2小白的进阶之路,爬虫学习篇!目录python爬虫学习2HTTP与HTTPSURL与URI常见的请求方式常见的请求头参数HTTP与HTTPShttp协议全称是HyperText Transfer Protocal(超文本传输协议),是一种发布和接收HTML(HyperText markup language)的方法。服务器端口号为80。HTTPS协议全称是HyperText Transfer Protocal over SecureSocket Layer),原创 2022-01-13 15:56:27 · 561 阅读 · 0 评论 -
python爬虫学习21
python爬虫学习21这是关于match未完下半部分,本来是想昨天…哎不说了上半部分的传送门目录python爬虫学习21三、正则表达式2.match2-3 贪婪与非贪婪2-4 修饰符2-5 转移匹配三、正则表达式2.match依照惯例,先把对照表附上来:2-3 贪婪与非贪婪之前我们一同学习了match方法的匹配,但是我们有时候匹配到的内容却不是我们想要的结果:# 贪婪与非贪婪import recontent = 'Hello 1234567 World_This is a Reg原创 2022-03-24 20:01:47 · 2325 阅读 · 4 评论 -
python爬虫学习9
python爬虫学习9解析连接-urlparse方法python爬虫学习9解析连接urlparse方法urlparse的参数返回值的获取解析连接前面我们知道,urllib中的parse模块定义了处理URL的接口,通过调用该模块我们可以实现,例如URL各部分的抽取、合并以及连接转换。下面,让我们一起了解几个parse模块中的常用方法:urlparse方法import urllib.parse# prase.urlparseurl = "https://baike.baidu.com原创 2022-03-04 22:50:49 · 353 阅读 · 0 评论 -
python爬虫学习14
python爬虫学习14这里写目录标题python爬虫学习14get 请求简单的GET请求附加信息的GET请求返回值的类型抓取网页抓取二进制数据添加请求头get 请求简单的GET请求# HTTP 中最常见的请求之一就是GET请求,首先首先来详细了解一下利用requests库构建GET请求的方法。# 下面构建一个最简单的请求,请求的链接为 https://www.httpbin.org/get,该网站会判断用户发起的是否为get请求import requestsresp = requ原创 2022-03-14 20:28:05 · 5871 阅读 · 8 评论 -
python爬虫学习13
python爬虫学习13requests 库 之前我们学习了python内置的urllib库的基本用法,其中有很很多不方便的地方,例如处理网页验证和cookies时,需要写Opener和Handler来处理。另外,实现POST与PUT等请求时也不太方便。 所以我们今天来学习工能更加强大的requests库。requests 库的安装或者使用源码安装:# 访问连接http://mirrors.aliyun.com/pypi/simple/requests/# 下载文件到本地后,解原创 2022-03-10 21:59:54 · 172 阅读 · 0 评论 -
python爬虫学习19
python爬虫学习19经过urllib与requests库的学习,相信我们已经对python爬虫有了一个初步的掌握了,下面我们将一起学习正则表达式的运用(还记得之前挖的坑嘛?)。三、正则表达式在requests库的学习中,我们可以用相关的方法来获取网页源码,得到HTML代码。但是我们真正想要的数据其实是隐藏在HTML代码之中的,通过对正则表达式的学习,我们可以使用其从HTML代码中获取我们想要的信息。3-1.实例引入开源中国提供了一个正则表达式的测试工具 ,输入待匹配的文本,然后选择常用的正则表原创 2022-03-21 20:24:13 · 3327 阅读 · 0 评论 -
python爬虫学习15
python爬虫学习15目录python爬虫学习15发送POST请求响应返回码与查询条件发送POST请求import requestsdata = { 'name': 'germy' , 'age': '25' }# 该网站可以判断请求是否为 POST 格式,如果是那么返回请求。url = 'https://www.httpbin.org/post'r = requests.post(url, data=data)print(r.text)print原创 2022-03-15 20:47:38 · 521 阅读 · 0 评论 -
python爬虫学习11
python爬虫学习11目录python爬虫学习11解析连接urlencodeprase_qsparse_qslquoteunquote分析Robots 协议Robots协议爬虫名称解析连接urlencode之前已经提到过,urlencode可以实现对数据的转化from urllib import parseparams = { 'name': 'germey' , 'age': '25'}base_url = 'http://www.baidu.com?'u原创 2022-03-08 22:14:35 · 497 阅读 · 0 评论 -
python爬虫学习24
python爬虫学习24目录python爬虫学习24四、httpx的使用4-1.引入4.2 httpx库的安装4.3 基本使用四、httpx的使用4-1.引入截止目前我们一同学习了urllib库的使用、requests库的使用、以及正则表达式的相关内容。在这里就不得不提到urllib库与requests库的局限性:两者只支持HTTP/1.1,并不支持HTTP/2.0。一旦我们遇到仅支持HTTP/2.0的网站那就又废了。# 此网站就是一个强制使用HTTP/2.0的网站url = 'https://原创 2022-03-30 20:28:13 · 915 阅读 · 0 评论 -
python爬虫学习12
python爬虫学习12目录python爬虫学习12robotparser本章结语robotparser 上一篇我们一同了解了Robots协议,了解协议之后我们就可以使用robotparser模块来解析robot.txt文件了。RobotFileParser声明:只需要在使用该类时传入robot.txt的url连接即可set_url ()方法:用来设置robot.txt文件的连接read()方法:读取robot.txt文件进行分析parse()方法:用于解析原创 2022-03-09 22:45:39 · 1173 阅读 · 0 评论 -
python爬虫学习18
python爬虫学习18目录python爬虫学习18高级用法其三1.超时设置2.身份认证3.代理设置4.Prepared Request高级用法其三1.超时设置# requests库中的请求方法下也提供了 timeout 参数我们可以设置该参数,防止过长时间服务器不能响应# 超时设置import requestsurl = 'https://www.httpbin.org/get'timeout = 0.5resp = requests.get(url, timeout=timeout)原创 2022-03-20 19:33:06 · 1265 阅读 · 0 评论 -
python爬虫学习16
python爬虫学习16这里写目录标题python爬虫学习16requests 库的高级用法文件上传Cookie 设置requests 库的高级用法文件上传# 还记得我们之前获取的.ico文件吗?现在我们使用它进行文件上传的操作import requests# 在上传文件时,要保证要上传的文件与程序存在于同一文件夹下files = {'file': open('favicon.ico', 'rb')}url = 'https://www.httpbin.org/post'r =原创 2022-03-16 19:35:45 · 1466 阅读 · 0 评论 -
python爬虫学习22
python爬虫学习22这里写目录标题python爬虫学习22三、正则表达式3.search方法三、正则表达式3.search方法之前我们学习了正则表达式中的match方法,请大家回想一下match方法的前提,没错match方法是从字符串开头开始匹配,那么一旦开头不匹配,意味着整个匹配就废了:# match 的局限性import recontent = 'Extra strings Hello 1234567 World_this is a Regex Demo Extra sting原创 2022-03-27 21:09:00 · 1437 阅读 · 0 评论 -
python爬虫学习8
python爬虫学习8目录python爬虫学习8异常处理URLErrorHTTPError解析连接urlparse异常处理我们已经知道如何发送请求,但是在网络不好的情况下,如果出现异常该怎么办?urllib库中的error模块定义了由request模块产生的异常。URLError# URLError 类来自urllib库中的error模块,继承自 OSError 类,是error异常处理模块的基类。from urllib import request,errorurl = '原创 2022-03-03 19:05:49 · 463 阅读 · 0 评论 -
python爬虫学习20
python爬虫学习20目录python爬虫学习20三、正则表达式2.match2-1匹配目标2-2通用匹配三、正则表达式2.matchmatch是一种常用的匹配方法,向他传入我们需要匹配的字符串以及正则表达式,就可以检测这个正则表达式是否和字符串相匹配。# match# 该方法会从字符串的起始位置开始匹配正则表达式,如果匹配,就返回匹配成功的结果;反之,就返回Noneimport recontent = 'Hello 123 4567 World_This is a Regex Dem原创 2022-03-22 20:50:11 · 1182 阅读 · 0 评论 -
python爬虫学习23
python爬虫学习23目录python爬虫学习23三、正则表达式4. findall 方法5. sub6. compile三、正则表达式4. findall 方法之前我们学习了search与match方法各自的作用与不足,昨天的学习中我们知道在使用search方法后,可以有效避免match方法必须从开头匹配字符串的不足,但是search本身也有很大的缺陷,即只能找到第一个符合条件的结果。这个时候我们若想要匹配出所有可能的结果,就需要用到findall(从字面意义上看,我们就能很直观地知道这个方法原创 2022-03-28 20:31:53 · 2048 阅读 · 0 评论 -
python爬虫学习10
python爬虫学习10目录python爬虫学习10解析连接urlunparseurlspliturlunspliturljoin之前我们一同学习了parse模块中的urlparse方法,接着我们将继续学习与之相对应的urlunparse。解析连接urlunparseurlunparse方法接收的参数是一个可迭代对象,其长度必须是六(与之前urlparse中的六个参数对应)实例from urllib import parse# 只要是一个可迭代对象就行(比如元组),这里使原创 2022-03-07 17:04:37 · 597 阅读 · 0 评论 -
python爬虫学习17
python爬虫学习17这里写目录标题python爬虫学习17高级用法其二Session 维持SSL证书验证设置 verify 参数以绕过验证设置忽略警告以屏蔽警告指定证书以绕过警告高级用法其二Session 维持# 之前我们学过 post 与 get方法做到模拟网页进行请求,这两种方法是相互独立的,即相当于两个浏览器打开了不同的页面# 基于以上特点,我们使用爬虫时,用 POST 方法登录网站之后,再想要使用get方法获取请求个人信息页面显然不能得到我们想要的信息,那么如何解决这种问题呢?原创 2022-03-17 20:55:50 · 1003 阅读 · 0 评论 -
python爬虫学习25
python爬虫学习25目录python爬虫学习25四、httpx库4-4 client 对象4-5 支持HTTP/2.04-6 支持异步请求四、httpx库接着昨天的进度继续:上半部分的传送门4-4 client 对象httpx中有一个client对象,对于他的使用我们可以类比requests库中的session:# client 对象import httpxwith httpx.Client() as cli: resp = cli.get('https://www.http原创 2022-03-31 19:58:31 · 1286 阅读 · 0 评论