from urllib import request
from http import cookiejar
import re
import urllib
#定义url
page=50
url="https://tieba.baidu.com/f?kw=%E6%AE%B5%E5%AD%90&ie=utf-8&pn="+str(page)
# 定义登录的账户密码
data = urllib.parse.urlencode({
'account': "15580020934",
'password': "10011sos"
}).encode(encoding='UTF8')
try:
#定义请求头
headrs={"User-Agent":" Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36"}
#定义请求,传入请求头
req=request.Request(url,data=data,headers=headrs)
# 设置cookie存放的文件路径
flieanme = 'cookie.txt'
# 声明一个mozillacookiejar保存cookie
cookie = cookiejar.MozillaCookieJar(flieanme)
# 定义处理器处理cookie
handler = request.HTTPCookieProcessor(cookie)
# 定义下载器
opener = request.build_opener(handler)
# 下载网页
resp=opener.open(req)
# 保存cookie到文件
cookie.save(ignore_discard=True, ignore_expires=True);
# 创建moziilacookiejar的实例对象cookie
cookie = cookiejar.MozillaCookieJar()
# 从文件中加载cookie
cookie.load("cookie.txt", ignore_discard=True, ignore_expires=True)
# 创建处理器
handler = request.HTTPCookieProcessor(cookie)
# 创建下载器
opener = request.build_opener(handler)
# 定义请求
#打开网页
resp=opener.open(req)
#打印响应码,解码
content=resp.read().decode('utf-8')
#定义正则表达式
#<a rel="noopener" 具体的东西
#.*? 匹配没用的数据
#(.*?)匹配有用数据分组
#\s 空格
pattern=re.compile(r'<a rel="noopener".*?title=(.*?)\s.*?>(.*?)</a>')
#匹配html
items=re.findall(pattern,content)
#打印解析的内容
for i in items:
print("标题:"+i[0]+" 内容:"+i[1])
except request.URLError as e:
#打印响应码
if hasattr(e,'code'):
print(e.code)
#打印异常原因
if hasattr(e,'reason'):