上面是煎蛋的妹子图
上面是爬虫爬取下载到我电脑里的妹子图
你可能会说,搞几十张图到电脑里就敢说自己是老司机,就想骗我们浏览量,也太简单了。
几十张?像我这么懒的人会手动下载几十张?要不是想来装逼,我连这篇文章都懒得写。少废话,有图有真相。
是不是够粗暴,是不是够直接
life is short, you need python
代码不要上千行,不要上百行,只要28行(其实更短也可以,加了个判断是不是GIF才多了几行,核心代码其实就那么几行),煎蛋妹子带回家,是不是心动了,现在就拿起电话,哦,不,现在就拿起电脑写代码。
伸手党直接复制下面的代码也可以,把文件路径改成你自己的想保存图片的路径,headers里的cookie改成你自己的cookie(代码里的cookie被我改过,直接爬是不可以的,毕竟我也要爬,人人都用我的cookie直接就被封了)。
话不多说:照旧需要
pycharm
requests库
BeautifulSoup库
lxml解析器
照旧检查图片定位,这里定位到的img是我们网页上直接看到的图片,并非原图所以我们得找找原图在哪
可以看见img标签上面的a标签里的链接才是原图的链接
定位好真实的图片地址就成功了一大半
接下来查看自己的cookie,煎蛋的反爬策略并不多,一般来说有cookies就能骗过网站了,但保险起见还是把user-agent也写进去。
也不想多扯,毕竟python真的太简洁,直接上代码好了,有点编程基础的应该直接能看懂,没有编程基础的建议先去学下python。毕竟life is short ,you need python!
import requests
from bs4 import BeautifulSoup
path='H:/picture2/'#你的图片保存路径
urls=['http://jandan.net/ooxx/page-{}#comments'.format(str(i))for i in range(1985,1500,-1)]#从1985页爬到1500页,煎蛋1500页之前的图片已经关闭无法爬取
headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1','Cookie':'4112349564=067cajV5x1H3jpb%2BI5'}#这里是user-agent和cookie,代码展示的只是样式,并非真实的user-agent和cookie,你要换成你自己的
img_url=[]
def get_info(url):
wb_data=requests.get(url,headers=headers)#发起网页请求
soup=BeautifulSoup(wb_data.text,'lxml')#解析网页
img=soup.select('a.view_img_link')#定位元素
for i in img: #判断是否为GIF,是就pass,不是就添加到下载列表
z=i.get('href')
if str('gif') in str(z):
pass
else:
img_url.append(z)
for i in img_url: #下载模块
r=requests.get(i)
with open(path+i[-15:],'wb')as jpg:
jpg.write(r.content)
print(img_url) #输出下载列表
def download(): #下载用的函数,因为用的是列表append的用法,所以每下载一页都要清空列表,不然会重复下载
for i in urls:
get_info(i)
img_url=[]
download() #调用下载函数