aiohttp
概述aiohttp和requests类似,都是发送http请求的。不同的是requests是同步操作,会阻塞IO。而aiohttp是异步操作,不会阻塞IO
安装aiohttp是第三方库,用之前需要先安装:
pip install aiohttp
用法发送请求
import aiohttp
import asyncio
url = 'https://网址'
# 创建请求对象
se ...
协程
协程的概念Python程序在执行IO操作(或者sleep操作)时,必须等待完成才能接着执行下面的程序。显然这样不够高效。于是Python引入了协程,使程序在IO操作时,先运行其它程序,当IO操作完成以后再接着运行下面的程序。
协程是运行的单线程,只是子任务的切换。减少了进程切换的开销,大大提高了执行效率。
协程函数的语法Python在3.5版本中引入了关于协程的语法糖async和await。
...
Python线程池
线程池的作用是:一次性开辟一些线程,用户直接给线程池分配任务。线程的任务调度交给线程池来完成
from concurrent.futures import ThreadPoolExecutor, ProcessPoolExecutor
# 进程的写法和线程一样。这里就不做展示了。
def func(name):
for i in range(1000):
print(na ...
Python的多线程和多进程
Python中创建多线程有两种方法
方法一:# 引入线程类
from threading import Thread
# 引入进程类
from multiprocessing import Process #进程的创建和线程的写法是一个的。就不写列子了
def func():
for i in range(1000):
print('func', i)
...
xpath
xpath是一门在HTML/XML中查找信息的语言,Python的lxml库引入了xpath。在Python中引入lxml就可以解析HTML
安装pip install lxml
基础应用from lxml import etree # 导入xpath
# etree.XML(content) # 解析xml文档
# etree.HTML(content) # 解析html文档
# ...
bs4
安装bs4是Python用来解析HTML/XML的库,它是第三方库,需要我们安装
pip install bs4
常用语法from bs4 import BeautifulSoup # 引入bs4组件
# 解析内容。第一个参数是被解析的内容。第二个参数是声明被解析对象的类型
result = BeautifulSoup(text, 'html.parser')
# ...
re 正则表达式
re是Python内置的模块,通过它提供了对正则表达式的支持
基础应用# 引入re
import re
# 匹配字符串中所有符合正则的内容
re.findall('\d','中国移动:10086;中国联通10010')
# 返回列表['10086', '10010']
# 匹配字符串中所有符合正则的内容。
ls = re.find ...
使用代理proxy
爬取内容时,我们的ip可能会被网站封掉。这个时候就需要用代理来爬。下面是使用代理的简单例子
import requests
proxies = {
"https": "112.47.3.53:3128",
# "http": "112.47.3.53:3128",
}
respo ...
requests.session()会话保持
有的网站需要登录才能访问。这时候可以用requests模块中的session保持会话。session在发起请求的时候,会自动保存和发送cookie以达到保持会话的目的
下面以17k小说网为例介绍session的用法
# 17k小说网
import requests
# 开启session对话
session = requests.session()
# 登录地址
login_url = ...