1.:对于URL上,因为时过境迁,网页的url的规律也发生了变化,现在是这样的(当然现在这个网站已经是正规网站了哈哈哈哈):
随手拍 (jandan)=#comments
后缀中的 MjAyMjA0MjUtMTc=是加密后的字符串,因此要通过base64进行解密,解密后发现这些字符串代表的是:当天的年月日-页号,如前面的字符串就是:20220425-17
我处理上面的方法就是引用time模块,获取今天的年月日,组合成符合要求的字符串(因为这个网页的url是根据每一天的日期的不同而改变的,为了保证代码的时效性,获取日期更符合,如果只是试一下,则可以直接输入今天的年月日去爬取)
2.第二点:在爬取照片的链接的时候,爬取的字符串没有前缀“http:”,这个是需要自己去发现的,然后自己拼接后就可以成功了
最后亮代码:
# coding:utf-8
quest
import os
import time
import base64#解密
def change_string(string):string1=base64.b64decode(string).decode()# print(string1)return string1
#加密
def add_secret(string):string2=base64.de()).decode()# print(string2)return string2
#获取时间
def get_time():t1=time.localtime()if len(_mon))==1:month='0'+_mon)else:month=_mon)if len(_mday))==1:mday='0'+_mday)else:mday=_mday)year=_year)time_string=year+month+mdayreturn time_string#打开url
def url_open(url):req = quest.Request(url)req.add_header('user-agent','Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Mobile Safari/537.36 Edg/100.0.1185.50')response = quest.urlopen(url)html = ad()# print(url)return html
#获取最大的页数
def get_page(url):html=url_open(url).decode('utf-8')a=html.find('current-comment-page')+23b=html.find(']',a)return html[a:b]#获取url中的加密字符串
def get_timestring(page):time=get_time()page=time+'-' + str(page)page=add_secret(page)return page
#寻找网页中图片
def find_imgs(url):html=url_open(url).decode('utf-8')img_addrs=[]a=html.find('img src=')while a != -1:b=html.find('.jpg',a,a+255)if b!=-1:img_addrs.append('http:'+html[a+9:b+4])else:b=a+9a=html.find('img src=',b)for each in img_addrs:print(each)return img_addrsdef save_imgs(folder,img_addrs):for each in img_addrs:filename=each.split('/')[-1]with open(filename,'wb') as f:img=url_open(each)f.write(img)def download_cc(folder='OOXX',pages=10):os.mkdir(folder)os.chdir(folder)url='/'page_num=int(get_page(url))for i in range(pages):page_num-=ipage_url=url+get_timestring(page_num)+'#comments'print(page_url)img_addrs=find_imgs(page_url)save_imgs(folder,img_addrs)if __name__=='__main__':download_cc()
然后亮亮我的爬取的照片(哈哈哈哈):
本文发布于:2024-01-28 18:23:40,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17064374249360.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |