保存与读取cookie
1.使用urllib爬取百度搜索html2.urllib.request.Request对象封装请求3.urllib发送get请求_中文传参问题4.urllib发送post请求获取html源代码5.获取动态页面html6.忽略SSL证书验证7.使用fake-useragent库伪装请求头8.urllib自定义opener对象设置代理IP9.爬虫cookie的使用
10.保存与读取cookie
11.使用urllib.error进行请求异常处理12.使用requests库发送get和post请求13.使用Request伪装User-Agent和IP地址14.requests设置超时时间/requests.Session自动保存cookie/verify忽略ssl证书15.re模块的正则表达式规则16.使用re的正则表达式提取腾讯体育新闻摘要17.BeautifulSoup4解析数据18.bs4.find_all()搜索文档树和css选择器提取解析后的html数据19.bs4解析并提取人民网新闻标题数据20.xpath解析数据21.谷歌浏览器的xpath插件安装22.使用re和lxml的xpath功能提取纵横中文网小说推荐榜前3页标题23.JSON数据24.使用jsonpath快速提取json的数据25.提取猫眼电影正在热映电影以及评分26.单线程与多线程爬虫接着爬取上次提过的网站。当前页面需要登录才能获取信息,编写爬虫自动登录,自定义opener对象添加可以保存cookie的HTTPCookieHandler处理器来发送请求,将cookie保存成cookie.txt文件,再读取cookie并向服务器发送请求获取目标网页信息。目标url为http://www.tuili.com/bbs/bbsShowDetail.asp?act=search&fid=260772&aid=&bid=29
登录请求url为http://www.tuili.com/bbs/bbslogincheck.asp,编码为GB2312。
运行代码
from urllib.request import Request, build_opener, HTTPCookieProcessor, urlopen
from fake_useragent import UserAgent
from http.cookiejar import MozillaCookieJar
def save_cookie():
# 登录网页地址
url = 'http://www.tuili.com/bbs/bbslogincheck.asp'
# 创建UserAgent实例
ua = UserAgent()
# 封装请求头信息
data = b'userid=%CF%C4%C8%D5%B1%F9%BA%EC%B2%E8&userpwd=Icedtea112'
headers = {'user-agent': ua.chrome}
# 创建Request对象
req = Request(url, data=data, headers=headers)
# 创建一个控制器用来辅助保存cookie
cookie_jar = MozillaCookieJar()
# 创建一个可以保存Cookie的控制器对象
handler = HTTPCookieProcessor(cookie_jar)
# 构建发送请求的对象
opener = build_opener(handler)
# 登录
resp = opener.open(req)
# 保存cookie到cookie.txt文件
cookie_jar.save('cookie.txt', ignore_discard=True, ignore_expires=True)
def use_cookie():
# 登录成功后获取目标网页html源代码
index_url = 'http://www.tuili.com/bbs/bbsnewdoc.asp'
headers = {'user-agent': UserAgent().chrome}
index_req = Request(index_url, headers=headers)
# 创建一个可以读取cookie为文件的对象
cookie_jar = MozillaCookieJar()
# 读取cookie文件
cookie_jar.load('cookie.txt', ignore_discard=True, ignore_expires=True)
# 创建一个控制器用来辅助读取cookie
handler = HTTPCookieProcessor(cookie_jar)
# 创建一个可以读取cookie的opener
opener = build_opener(handler)
# 发送请求,获取信息
index_resp = opener.open(index_req)
print(index_resp.read().decode('gb2312'))
if __name__ == '__main__':
save_cookie()
use_cookie()
运行结果(和手动登录查看的信息比对)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?