Greennova 发表于 2022-11-26 21:56

python爬虫手刃唯美女生网站获取壁纸

先来欣赏一下网站下的小姐姐


首先声明,只是学习,并无恶意爬取
并且在只抱有学习的心态下只敲了爬取一页的代码,并且时间为每分钟请求一次图片链接
各位想要爬取多页,自行添加一个页数循环即可
想要加快速度更改time.sleep()即可,但并不建议
还有需要自行在项目内添加文件路径,代码中的为'img//'+'唯美女生//'
import time

import requests
import re
url_web = "https://www.vmgirls.com/page/1/"
head = {
    "user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36"
}
responce = requests.get(url = url_web,headers=head)
#print(responce.text)
url_obj = re.compile(r'<a class="media-content" target="_blank" href="(?P<url>.*?)" title=".*?" ',re.S)
list_url = url_obj.finditer(responce.text)

for i in list_url:
    n = 0
    url_type = i.group("url")
    #print(url_type)
    responce1 = requests.get(url_type)
    print(responce1.text)
    src1 = re.compile(r'<img alt="(?P<id>.*?)" src="(?P<url_src>.*?)" alt=""/></a>',re.S)
    src2 = src1.finditer(responce1.text)
    for y in src2:
      id = y.group("id")
      url_src = y.group("url_src")
      responce2 = requests.get(url_src,headers=head)
      with open('img//'+'唯美女生//'+id+str(n)+'.jpg',mode="wb") as f:
            f.write(responce2.content)
      n = n+1
      print("over!",n)
      time.sleep(60)
responce.close()
结果如下图所示

Greennova 发表于 2022-11-29 11:14

柒妖妖 发表于 2022-11-27 11:49
这里报错了啊,请教一下

这个好像是网站的原因,这个网站访问多次好像就会被禁止访问,但是过一会重新发送请求就可以了。可以在代码里面加一些算法,遇到这种无法访问的情况就先等待一段时间再发送请求

Greennova 发表于 2022-11-29 22:02

monooricon 发表于 2022-11-29 21:14
vmgirls网站是不是就是被你们爬崩了。。。

我都没有大量爬哦&#128580;,只是学习,那代码都只是一分钟请求一次,还只是一页的,爬两张学习一下就不爬了

fengwolf3 发表于 2022-11-27 08:48

优秀,学习了

f2arayner 发表于 2022-11-27 09:45

谢谢大佬,代码拿走了

yam59371 发表于 2022-11-27 10:03

谢谢大佬,学习了

heyimyh 发表于 2022-11-27 10:10

谢谢你,py侠

constwm 发表于 2022-11-27 10:16

可以可以,嘿嘿。

ipaint 发表于 2022-11-27 10:26

谢谢分享。

happyxuexi 发表于 2022-11-27 10:31

功能很强大

wuai4444 发表于 2022-11-27 10:54

优秀,学习了

zhjsh999 发表于 2022-11-27 11:15

谢谢分享
页: [1] 2 3
查看完整版本: python爬虫手刃唯美女生网站获取壁纸