新手爬虫妹子图
本帖最后由 fytfytf 于 2020-7-5 10:04 编辑import urllib.request as ur
from bs4 import BeautifulSoup as BS
import re
import os
def mkdir(dirname):#创建文件夹并转到
try:
os.mkdir(dirname)
os.chdir(dirname)
except:
os.chdir(dirname)
def url_open(url):#打开网页
try:
head={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36 LBBROWSER'}
req=ur.Request(url,headers=head)
response=ur.urlopen(req).read()
except:
return 'error'#用于表示爬到404
else:
return response
def zhuatu(img_dict):#抓取图片
for i in img_dict:
mkdir(i)
page=1
while 1:
if page==1:
response=url_open(img_dict)
else:
response=url_open(''.join((img_dict,'_',str(page),'.html')))
if response=='error':#用来检测有没有下一页,不知道怎么查总页数,只能用这种土办法{:10_277:}
break
soup=BS(response,'lxml')
img_url=soup.select('.main-image img')['src']
with open(str(page)+'.jpg','wb') as f:#抓取文件并保存
img=url_open(img_url)
f.write(img)
print('page'+str(page)+' downloaded')#表示一个图片下完
page+=1
os.chdir('..') #返回上一级目录,以便创建文件夹
def cover(url):#获取封面图片和图片对应的网页地址
response=url_open(url).decode('utf-8')
soup=BS(response,'lxml')
fengmian=soup.select('#pins span a')
img_dict={}
for i in fengmian:#把简介和图片对应的地址存到字典
img_dict=''.join(['https://www.youmzi.com',i['href']])
zhuatu(img_dict)
def start(dirname='youmeizi',url='https://www.youmzi.com',yeshu=1):#程序开始
mkdir(dirname)
page=1
for i in range(yeshu):
if page>1:
if url=='https://www.youmzi.com':#网址首页比较特殊,所以处理一下
url=''.join((url,'/page/index_',str(page),'.heml'))
else:
url=''.join((url,'index_',str(page),'.html'))
page+=1
cover(url)
if __name__=='__main__':
start('youmeizi','https://www.youmzi.com',1)
跟着小甲鱼视频学习抓妹子图,自己也试了一下{:10_297:},小甲鱼30分钟做出来,我做了一天,这就是菜鸟和高手的差距吗{:10_263:}
(ps:find_all能模糊匹配,但只能匹配一个标签,select可以匹配多个标签的属性,但不能模糊匹配,有可以对多个标签的属性进行模糊匹配的方法吗,求解{:10_254:} )
抓到的结果
小污龟{:10_334:}
页:
[1]