关于python爬取的一种另类解密方法(字符串缝合)
本次我要爬取的网址是极简壁纸(国外网站),直接使用requests模块和bs4爬取不了,因为找到高清图的网址在打开的过程中会被解析成另一个网址,这属于网站防爬的一种加密方法。但破解简单:
通过观察
在首页看到图是缩小的非高清图(任举例)
网址为:http://static.simpledesktops.com/uploads/desktops/2019/06/22/Dinosaur_eye_2.png.295x184_q100.png
而它的高清图为:
http://static.simpledesktops.com/uploads/desktops/2019/06/22/Dinosaur_eye_2.png
所以我只要去掉后面的.295x184_q100.png,通过python强大的字符串拼接就能直接访问了,以后的类似可通过缝合字符串得到具体网址的也可以诸如此类操作。
具体实现代码为:
import re
import requests
import time##自主编写爬虫4
from bs4 import BeautifulSoup
from lxml import etree
url="http://simpledesktops.com/browse/2/"
headers={
"User-Agent":"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.128 Safari/537.36"
}#UA伪装
new_page=requests.get(url=url,headers=headers)
first_soup=BeautifulSoup(new_page.text,"html.parser")
div_a=first_soup.find("div",class_= "desktops column span-24 archive").find_all("img")
for src in div_a:
src=src.get("src")
src=src.replace(src[-17:],"" )
img_resp=requests.get(url=src,headers=headers)
img_name=src.split("/")[-1]#根据具体而修改
with open("极简/"+img_name,mode="wb")as f:
f.write(img_resp.content)#不需要修改
print(img_name+"over")
time.sleep(1)#防被服务器检测禁止ip访问
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?