python——全方位爬虫

目录

一、urllib

1、request简介

1.1 urlopen

1.2 data参数设计

1.3 timeout参数

1.4 Request方法

1.5 高级用户(Cookie、代理)

身份认证:

代理:

Cookie:

扫描二维码关注公众号,回复: 16886350 查看本文章

2、urllib——error模块

2.1 URLerror模块

2.2 HTTPError

3、urllib——parse模块

3.1 urlparse方法

3.2 urlunparse方法

3.3 urlsplit方法

3.4 urlunsplit方法

3.5 urlencode方法

3.6 parse_qs方法

3.7 parse_qsl方法

3.8 quote方法

3.9 unquote方法

3.10 urljion

4、urllib——robotparser模块

4.1 Robots协议

4.2 爬虫名称

4.3 robotparser

二、 requests

1 request请求介绍

2 GET请求

3、抓取网页信息

4、抓取二进制数据

5、添加请求头

6 POST请求

7 响应

8 上传文件

9 Cookie设置

10 session维持

11 SSL证书认证——verify参数

12 超时设置

13 身份验证

14 代理设置——proxies

15 Prepared Request

三、正则表达式

1 常用正则表达式的匹配规则

正则表达式——只保留中文/汉字字符(过滤非汉字字符

2 re库

2.1 match

2.2 匹配目标

2.3 通用匹配

2.4 贪婪和非贪婪

2.5 修饰符

2.6 转移匹配

2.7 search匹配

2.8 findall方法

2.9 sub方法

2.10 compile方法

四、httpx的使用

1 httpx基本用法

2 Client对象

3 HTTP/2.0

4 支持异步请求

五,Python logging 模块之 logging.basicConfig 用法和参数详解

1.1. logging 模块简介

2 logging.basicConfig(**kwargs)

1.4 使用文件(filename)保存日志文件

1.5 设置日志中的时间格式

六、python——json

1 JSON介绍

1.1 json介绍

1.2 json特点

1.3 json 文件的处理

1.4 json语法规则

1.5 json

1.6 json文件的书写

1.7 读取json文件的方法(json. load)

2 json常用函数

2.1 load和loads

七 python——os库

1 os库介绍

2 os使用

3 os库的常用方法

4 操作目录

5 操作路径

八 python——sys库

1 sys概述

2 sys使用

2.1 sys查看

2.2 sys常用属性

2.3 sys常用方法

九、 爬取静态网页实例

1 要求

2 yield 用法

3 测试代码

4 爬取壁纸实例(自己编写的实例,暴力的正则匹配,main函数测试的时候使用break)

十、XPath库

1 XPath常用规则

2 XPath用例

3 匹配所有节点

4 子节点

5 父节点

6 属性匹配

7 文本获取

8 属性获取

9 属性多值匹配

10 多属性匹配

11 按序选择

12 节点轴选择

十一、Beautiful Soup

1 Beautiful Soup简洁

2 解释器

3 Beautiful Soup的基本使用

4 节点选择器

5 提取信息

5.1 获取名称

5.2 获取属性

5.3 获取内容

5.4 嵌套选择

5.5 关联选择

5.6 父节点和祖先节点

5.7 兄弟节点

5.8 提取信息

6 方法选择器

6.1 find_all方法

7 CSS选择器

7.1 嵌套选择

7.2 获取属性

7.3 获取文本

十二、pyquery

1 初始化

1.1 URL初始化

1.2 文件初始化

2 基本CSS选择器

3 查找节点

4 查找父节点

5 兄弟节点

6 遍历节点

7 获取信息

7.1 获取属性

7.2 获取文本

8 节点操作

8.1 add_class和remove_class方法

8.2 attr,text和html

8.3 remove方法

9 伪类选择器

十三、 parsel库

1 parsel简介

2 parsel初始化

3 匹配节点

4 提取文本

5 提取属性

6 正则提取

十四、总结


一、urllib

1、request简介

request是最基本的HTTP请求模块,可以模拟请求的发送,其过程与在浏览器中输入网址1然后回车一样,只要给库方法传入URL以及额外的参数,就可以模拟实现发送请求的过程。

1.1 urlopen

rullib.request模块可以模拟浏览器的请求发起过程,同时还具备处理授权验证(authentication)、重定向(redirection)、浏览器Cookie等功能。

基本写法如下:

import urllib.request
​
response = urllib.request.urlopen("https://www.python.org/")
print(response.read().decode('utf-8'))
 
 

该方法为GET请求方法。使用type方法得到响应的类型:

print(type(response))

输出:<class 'http.client.HTTPResponse'>

所以响应是一个HTTPResponse类型的对象。

使用方法输出响应的状态码和响应的头信息:

print(response.status) #得到响应的状态码
print(response.getheaders()) #得到响应的响应头信息
print(response.getheader("Server")) #获取响应头的键为Server的值

urlopen的API用法:

response = urllib.request.Request(url, data = None, [timeout]*,cafile = None,capath = None,cadefault = False,context = None)
1.2 data参数设计

data参数是可选的,在添加该参数时,需要使用bytes方法将参数转化为字节流编码格式的内容,即bytes类型。如果传递了data参数,则请求方方式为GET,而不是POST了。

实例:

import urllib.request
import urllib.parse
​
data = bytes(urllib.parse.urlencode({'name':'germey'}), encoding = 'utf-8')
response = urllib.request.urlopen('https://www.httpbin.org/post', data = data)
print(response.read().decode('utf-8'))

得到结果:

{
  "args": {}, 
  "data": "", 
  "files": {}, 
  "form": {
    "name": "germey"
  }, 
  "headers": {
    "Accept-Encoding": "identity", 
    "Content-Length": "11", 
    "Content-Type": "application/x-www-form-urlencoded", 
    "Host": "www.httpbin.org", 
    "User-Agent": "Python-urllib/3.11", 
    "X-Amzn-Trace-Id": "Root=1-64997bdd-011711375cc64ba54dba4056"
  }, 
  "json": null, 
  "origin": "1.202.187.118", 
  "ur

猜你喜欢

转载自blog.csdn.net/longhaierwd/article/details/131743192