@python网络安全开发学习2
Python爬虫结合正则表达式练习
练习目的:
使用python爬虫爬取斗鱼页面部分文字内容
# 使用python爬虫爬取斗鱼页面部分文字内容
import urllib.request #导入爬虫HTTP发送请求的模块
import re #导入正则表达式模块
url = 'https://www.douyu.com/' #定义url字符串为斗鱼网站
r = urllib.request.urlopen(url) #使用模块中的urlopen方法打开传入参数URL的页面
print(r.read().decode('utf-8')) #使用read方法读取内存,并指定编码支持中文
返回错误
经检查网站返回头是gzip格式,需要解码
from io import BytesIO
import gzip
import urllib.request #导入爬虫HTTP发送请求的模块
import re #导入正则表达式模块
url = 'https://www.douyu.com/' #定义url字符串为斗鱼网站
r = urllib.request.urlopen(url) #使用模块中的urlopen方法打开传入参数URL的页面
content = r.read() # content是压缩过的数据
buff = BytesIO(content) # 把content转为文件对象
f = gzip.GzipFile(fileobj=buff) #解压缩
res = f.read().decode('utf-8') #使用read方法读取并转码
print(res)
可以获得网站信息,接下来使用正则匹配出想要的中文
from io import BytesIO
import gzip
import urllib.request # 导入爬虫HTTP发送请求的模块
import re # 导入正则表达式模块
url = 'https://www.douyu.com/' # 定义url字符串为斗鱼网站
r = urllib.request.urlopen(url) # 使用模块中的urlopen方法打开传入参数URL的页面
content = r.read() # content是压缩过的数据
buff = BytesIO(content) # 把content转为文件对象
f = gzip.GzipFile(fileobj=buff) # 解压缩
res = f.read().decode('utf-8') # 使用read方法读取并转码
a = re.findall(r'alt="(.*?)"',res) # 使用正则表达式匹配所有在页面中 alt=" " 中间的内容
for i in range(0,len(a)): # 利用遍历打印出
print(a[i])
返回结果