freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

python爬虫练习篇上(静态网页)
2023-07-15 22:00:51
所属地 北京

python爬虫练习

1.环境

操作系统服务器网站
win10系统(企业版)phpstudy(5.4.45)pythonSpider(网站)

环境下载链接:https://pan.baidu.com/s/1caKBSPk7Re1Drpt0C5PRIg提取码:j7d7

2.代码:

# 网页信息爬取-批量下载图片.py

import requests
import re
import time

url = "http://10.9.46.55/pS/"

headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.79"

}
#1.获取网页源码
# 1.1 定义url地址
def get_html(url):
# 1.2 发送http请求
res = requests.get(url =url,headers =headers)
# 1.3 处理响应报文
return res.content
# 2.从网页源代码中提取图片地址(从字符串中,提取某个符合特征的字串,找src属性里的图片链接)
def get_img_path_list(html):
# 2.1 总结图片地址(字符串特征)
'''
style/u2545180955667863034fm170s82134F20A6E222A7AF9EE01E0100C0E3w6.jpg
style/u11515596794163509572fm170s8293ED2038F81E84451CD0860100A0E3w.jpg
'''
img_path_list = re.findall(r"style/\w*\.jpg",html)
# r表示使用正则匹配
# \w表示匹配任意数字、字母、下划线,与[0-9a-zA-Z_] 同义
# +表示左邻第一个字符最少出现1 次或无穷次
# \将单独出现的.转义,表示为正常字符
#2.2 在网页源代码中,找出符合图片地址特征的字串
#print(img_path_list)  
return img_path_list
# 3.根据图片地址下载图片
#3.1 将图片的数据(二进制)写进文件中,即下载图片
def img_download(img_save_path,img_url):
with open(img_save_path,"wb") as f:
 # 打开文件时也得以二进制的方式打开
 f.write(get_html(url = img_url))
#往里写的也是原始的字节数据(二进制),而不是字符串或其他解析后的格式
html = get_html(url = url).decode()
#往里写的也是原始的字节数据(二进制),需要解码
img_path_list = get_img_path_list(html = html)
#3.2 使用for循环遍历,下载多张图片
for img_path in img_path_list:
img_url = url +img_path
img_save_path = f"./images/{time.time()}.jpg"
# 建立一个路径,保存图片(用时间戳保证图片名永不重复)
img_download(img_save_path = img_save_path,img_url = img_url)

3.输出

1689413591_64b267d7ce18fcdc6fcea.jpg!small

1689413596_64b267dc917b086c863cf.jpg!small

# 渗透测试 # 网络安全 # web安全 # 数据安全 # 企业安全
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者