import urllib.request
import re
隐藏自己的包头信息
def get_html(url):
request = urllib.request.Request(url) #添加地址
request.add_header("user-agent","Mozilla/4.0 (Windows NT 6.5.0;\
Win32; x86; rv:69.0) Gecko/20100101 Firefox/69.0") #添加头部信息
response = urllib.request.urlopen(request) #提交信息包含头部信息
html = str(response.read(),encoding="utf8") #获取页面后转换为字符串
return html
获取图片网址
def get_imglist(html):
newimglist = []
imglist = re.findall("style/\w{60}\.jpg",html)#根据正则表达式,获取图片信息
for i in imglist:
newimglist.append("http://192.168.139.135/"+i) #这个是本地做的网页,写的自己的IP地址+信息
return newimglist
根据图片网站下载图片到本地
def get_img(imglist):
num = 0
for i in imglist: #每一个图的地址
request = urllib.request.Request(i) #添加地址
request.add_header("user-agent","Mozilla/4.0 (Windows NT 6.5.0;\
Win32; x86; rv:69.0) Gecko/20100101 Firefox/69.0") #添加头部信息
response = urllib.request.urlopen(request) #提交信息包含头部信息
html = response.read() #获取图片的二进制内容
num += 1 #为了文件名称定义
with open(r"C:\Users\changpin\Desktop\a\%s.jpg" %num,"wb") as f: #图片用二进制图片写入路径是我自己写的
f.write(html)
主函数的调用
if __name__ == "__main__":
url = "http://192.168.139.135"
html = get_html(url)
#print(html)输出网页代码的所有信息
imglist = get_imglist(html)
#print(imglist)获取图片信息
get_img(imglist)