zoukankan      html  css  js  c++  java
  • 爬取煎蛋网图片(破解js)

    pyexecjs

    在开始破解前,需要下载加载js环境的库,这样的第三方库python有许多,笔者用的是execjs可通pip直接下载

    pip install pyexecjs
    

    破解加密

    爬过煎蛋网的都知道现在的原图链接都是由一串hash通过js之后编译得到的,这个编译函数可以通过查看网页源码得到函数名
    在这里插入图片描述
    接下来可以直接在谷歌开发者工具中的控制台中输入函数名得到js代码,接下来就复制js代码拿下来用就行了
    在这里插入图片描述
    接下来附上源码

    import requests
    import execjs
    from bs4 import BeautifulSoup
    
    class JanDan:
    
        def __init__(self):
            self.headers = {
                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36'
            }
            self.file = open('test.js','r',encoding='utf-8').read()#拿下来的js代码较多这里就不放出来了
            self.jd = execjs.compile(self.file)#加载js代码
    
        def get_pic(self,url):
        '''下载图片'''
            url = url
            file_name = './'+url.split('/')[-1]
            html = requests.get(url).content
            with open(file_name,'wb') as f:
                f.write(html)
    
        def main(self):
            for i in range(1,44):
                url = 'http://jandan.net/ooxx/page-'+str(i)+'#comments'
                html = requests.get(url,headers = self.headers)
                html = BeautifulSoup(html.text,'lxml')
                hash_code = html.find_all('span',attrs={'class':'img-hash'})#获取网页中的图片hash
                for i in hash_code:
                    a = self.jd.call('jandan_load_img',i.text)#放置到js环境中解析
                    self.get_pic('http:'+a)
    
    if __name__ == '__main__':
        jandan = JanDan()
        jandan.main()
    
  • 相关阅读:
    python-阿里镜像源-pip
    python-Web-django-图形验证
    markdown-博客编辑
    python-爬虫-史书典籍
    python-爬虫-requests
    python-Web-项目-svn和git
    python-Web-数据库-Redis
    Codeforces Round #617 (Div. 3) A~D
    Educational Codeforces Round 81 (Rated for Div. 2)
    Codeforces Round #609 (Div. 2) A到C题
  • 原文地址:https://www.cnblogs.com/big-cabbage/p/10300354.html
Copyright © 2011-2022 走看看