代理池的搭建
-1、git clone git@github.com:jhao104/proxy_pool.git
-2、在pycharm中打开项目
-3、创建虚拟环境,并且安装依赖
pip install -r requirements.txt
-4、修改配置文件:DB_CONN = 'redis://127.0.0.1:6379/0'
-5、运行调度程序和web程序
python proxyPool.py schedule
python proxyPool.py server
-6、api介绍
/ GET api介绍 None
/get GET 随机获取一个代理 可选参数: ?type=https 过滤支持https的代理
/pop GET 获取并删除一个代理 可选参数: ?type=https 过滤支持https的代理
/all GET 获取所有代理 可选参数: ?type=https 过滤支持https的代理
/count GET 查看代理数量 None
/delete GET 删除代理 ?proxy=host:ip
透明的意思:使用者最终的ip是能看到的
高匿:隐藏访问者真实ip,服务端看不到
代理池的使用
-1、先启动代理池
-2、向http://127.0.0.1:5010/get/发送get请求拿到代理数据
-3、在爬虫项目中使用代理
import requests
def proxy_pool():
while True:
headers = {
"type": "http"
}
proxy = requests.get(url="http://127.0.0.1:5010/get/", headers=headers)
proxy_data = proxy.json()
if proxy_data["last_status"]:
return proxy_data["proxy"]
proxies = {
"http": proxy_pool()
}
header = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 "
"Safari/537.36 Edg/118.0.2088.76"
}
res = requests.get(url="https://www.bilibili.com/", headers=header, proxies=proxies)
print(res.text)
bs4介绍和遍历文档树
from bs4 import BeautifulSoup
html_doc = """
<html><head><title>The Dormouse's story</title></head>
<body>
<p class="title"><b>The Dormouse's story</b><span>lqz</span></p>
<p class="story">Once upon a time there were three little sisters; and their names were
<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,
<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and
<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;
and they lived at the bottom of a well.</p>
<p class="story">...</p>
"""
soup = BeautifulSoup(html_doc, 'html.parser')
1、用法 通过 . 遍历
2、获取标签的名称
3、获取标签的属性
4、获取标签的内容
5、嵌套选择
6、子节点、子孙节点
7、父节点、祖先节点
8、兄弟节点
print(list(soup.a.next_siblings))
爬取视频网站
爬取该网站的视频,保存到本地 https://www.pearvideo.com/
爬取新闻网站
练习
-前端 vue,后端django, 需要个自己的app
在自己期终架构项目上,编写一个扫码登录功能
-没有移动端--->只能模拟实现--->uc浏览器,微信扫码--->正常应该使用咱们自己的app
-1 掏出手机,扫码功能---->手机app端必须是登录状态(手机端存了token)
-2 扫码—->二维码--->连接地址(url地址)--->扫码出来是个地址--->app点击确认登录--->向这个地址发送一个 请求,携带你的token--->到了后端
-3 web前端有个页面,一点击进来--->向后端发送一个请求--->拿到一个二维码
-4 后端配合一个获取二维码的接口--->python生成一个二维码-->qrcode-->放着连接地址--->二进制--->base64--->{code:100,msg:获取二维码成功,img:base64图片,key:唯一}
-5 手机扫码,点确定---->向后端发送请求,携带token--->验证token,解析token确定好是谁--->生成token--->存到 某个地方--->唯一key
6 4步后,起一个定时器,每个2s携带key--->向后端查询 token有没有,如果有,带回来登录成功
-生成二维码接口
-根据唯一key,查询token接口
-手机扫码接口
Connection: keep-alive
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具