lonelysail9527 发表于 2020-8-3 21:07

爬虫下载漫画,一段js逆向搞不懂

扑飞漫画 http://www.pufei8.com/manhua/,能爬下来章节
    def parse_html(self,url):
      #http://www.pufei8.com/manhua/1783/376960.html   
      #http://www.pufei8.com/skin/2014mh/1.js
      req = requests.get(url,headers=self.headers)
      #编码格式 为国标
      if req.encoding == 'ISO-8859-1':
            req.encoding = "gbk"
      data = req.text
      with open('jd.html','w',encoding='utf-8') as f:
            f.write(data)
      res_html=etree.HTML(data)
      #<span id="viewpagename">第1页</span>
      table_view = res_html.xpath(".//span[@id='viewpagename']/text()")
      #<select onchange="gopage(this)"><option value="1">第1页</option><option value="2">第2页</option><option value="3" selected="selected">第3页</option><option value="4">第4页</option><option value="5">第5页</option><option value="6">第6页</option><option value="7">第7页</option><option value="8">第8页</option><option value="9">第9页</option><option value="10">第10页</option><option value="11">第11页</option><option value="12">第12页</option><option value="13">第13页</option><option value="14">第14页</option><option value="15">第15页</option><option value="16">第16页</option><option value="17">第17页</option><option value="18">第18页</option><option value="19">第19页</option><option value="20">第20页</option><option value="21">第21页</option><option value="22">第22页</option><option value="23">第23页</option><option value="24">第24页</option><option value="25">第25页</option><option value="26">第26页</option><option value="27">第27页</option><option value="28">第28页</option><option value="29">第29页</option><option value="30">第30页</option><option value="31">第31页</option><option value="32">第32页</option><option value="33">第33页</option><option value="34">第34页</option><option value="35">第35页</option><option value="36">第36页</option><option value="37">第37页</option><option value="38">第38页</option><option value="39">第39页</option><option value="40">第40页</option><option value="41">第41页</option><option value="42">第42页</option><option value="43">第43页</option><option value="44">第44页</option><option value="45">第45页</option><option value="46">第46页</option><option value="47">第47页</option><option value="48">第48页</option><option value="49">第49页</option><option value="50">第50页</option><option value="51">第51页</option><option value="52">第52页</option><option value="53">第53页</option></select>
      view_num = res_html.xpath(".//select[@onchange='gopage(this)']/option/text()")
      print(view_num[-1])
      pass
但是具体的章节下载不知道怎么弄了。

井右寺 发表于 2020-8-4 09:03

抓协议包
F12用起来

Menguy 发表于 2020-8-4 10:38

Junpre 发表于 2020-8-5 17:05

看来你需要先去简单了解下HTML js相关基础

<select onchange="gopage(this)">

你获取到的章节信息那一部分是个下拉选择框,也就是 HTML中的 select 标签

然后你可以看到里面有个 onchange="gopage(this)" 意思是这个select标签绑定了一个change事件
这个事件是在内容发生变化时触发它指定的函数或代码
在这里就是说着个下拉选择框你手动修改了章节就会执行 gopage 这个函数
里面的this指的是你选中的那个选项本身,也就是选中的 option 标签,他这样做应该是为了在 gopage 函数中获取到你选择的章节数,也就是 value="1" 中的 1
我也没有去看,估计获取到之后函数里面会做网址拼接然后跳转之类的操作

看你抓取的这个代码,应该是比较原始的HTML js编程,而且js也没有压缩混淆加密

所以,直接在 F12 里面使用 Ctrl+Shift+F 全局搜索 gopage 找到这个函数分析一下吧
页: [1]
查看完整版本: 爬虫下载漫画,一段js逆向搞不懂