Python爬取养眼图片

1.准备

各位绅士们,你可能会觉得疫情在家无聊,那么现在我们的Python语言可以满足你们的需求。
项目需要的工具
(1)Python3
(2)requests库
requests库可以通过代码pip install requests安装。如果不会用pip,可以参考以下网址i:https://jingyan.baidu.com/article/466506583fec5af549e5f825.html

2. 项目内容

2.1 网页分析

你打开以下网址:https://www.vmgirls.com/

推荐用Google浏览器。打开网址之后。

(1)右键点击检查,然后会出现HTML代码。网页链接再这里的href标签,并且是用.jpeg结尾的。

 相信你也可以找链接。找到之后记住这个标签的格式

2.2 代码结构

之前我们已经对网页进行分析,而且锁定了我们想要在网页中提取的信息(图片)所在的位置,那么下一步我们可以用Python写一个简单的代码了。最后我会给出完整代码。
(1) 代码结构设计
我们的代码可以实现,链接得到网页源码、解析源码得到图片、保存图片。
结构如下:

m = Meizi(url, kv)#建立类
m.getHtml()
m.Parase(html)
m.Saveing(urls)
print('succ')

(2)导入库

import requests
import re
import time

(3)获取网页HTML

 def getHtml(self):
       try:
        response = requests.get(self.url,headers=self.kvs,timeout = 30)
        response.encoding = response.apparent_encoding
        response.raise_for_status
        html = response.text
        self.Parase(html)
       except:
          print("ERROR!")

(4)解析HTML

def Parase(self,html):
        urls = re.findall('<a href="(.*?)" alt=".*?" title=".*?">', html)
        print(urls)
        self.Saveing(urls)

(5)保存为图片文件

   def Saveing(self,urls):       
       for url in urls:
         time.sleep(1)
         file_name = url.split('/')[-1]
         response = requests.get(url,headers=kv)
         with open(file_name,'wb') as f:
             f.write(response.content)

3. 结尾(附完整代码)

这个简单项目已经结束了,你可以快速下载图片了。不过要提醒下,如果爬取太频繁,可能会被封锁ip,到时候你就无法访问这个网站了,所以建议要适当爬取,不能给网站索取太多,这样对双方都好。
代码如下:

import requests
import re
import time
class Meizi:
    def __init__(self,urls,kv):
        self.url = urls
        self.kvs = kv
    
    def getHtml(self):
       try:
        response = requests.get(self.url,headers=self.kvs,timeout = 30)
        response.encoding = response.apparent_encoding
        response.raise_for_status
        html = response.text
        self.Parase(html)
       except:
          print("ERROR!")
          
    def Parase(self,html):
        urls = re.findall('<a href="(.*?)" alt=".*?" title=".*?">', html)
        print(urls)
        self.Saveing(urls)
    def Saveing(self,urls):       
       for url in urls:
         time.sleep(1)
         file_name = url.split('/')[-1]
         response = requests.get(url,headers=kv)
         with open(file_name,'wb') as f:
             f.write(response.content)

url='https://www.vmgirls.com/13333.html'#这里的端口号13333可以调整,调整后就是不同的妹子。
kv={'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'}
m = Meizi(url, kv)
m.getHtml()
print('succ')
原文地址:https://www.cnblogs.com/hhwblogs/p/12702969.html