wp231957 发表于 2020-2-26 10:07:03

解析一个网站:

本帖最后由 wp231957 于 2020-2-26 13:46 编辑

发现无法使用鼠标右键,尝试网上N种办法 无效,于是继续努力:

1、复制源码(还好F12能用) 另存为本地html
2、使用file协议 运行该html,发现会强制跳转
   发现:
<script>
    if(window.location.href.indexOf('enterdesk.com')==-1)
    {
      window.location.href="https://www.enterdesk.com"
    }
</script>
删除之,继续
3、查看css文档,可以确定不是通过css禁用鼠标右键

4、发现PUBLIC.JS中存在以下代码

$(document).ready(function(){
    $(document).bind("contextmenu",function(e){
      return false;
    });
    $(document).bind("selectstart",function(){return false;});
});


百度得知,第一个是绑定鼠标右键事件   false 为禁止
                第二个是绑定鼠标选择区域事件   flase为禁止
               
把这段代码 删除,于是乎,鼠标右键 管用,此时 本地html 分析结束

继续实战:,以上是针对本地html的分析和实现,下面针对web网页进行测试:
经过了N++次 实验,终于成功一次:

$(document).unbind("contextmenu");    //此条代码再F12控制台下获取成功

javascript:$(document).unbind("contextmenu");//此条代码再地址栏下 获取成功
$(document).unbind("contextmenu");   //这个代码再地址栏下 不会成功

补充:再地址栏里输入javascript代码再edge浏览器里遭遇失败,需要再地址栏输入about:flags把和javascript相关的开关开启否则 它都给你当字符串处理



wp231957 发表于 2020-2-26 20:07:43

爬虫部分:
此部分倒是没有遇到什么坎坷:

import requests
from lxml import etree


headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3947.100 Safari/537.36"}
pages=0
for page in range(1,779):
    url="https://www.enterdesk.com/zhuomianbizhi/%s.html"%page
    reponse=requests.get(url=url,headers=headers)
    reponse.encoding=("utf-8")
    tree = etree.HTML(reponse.text)
    data=tree.xpath("//img/@src")
    for x in data:
       pages+=1
       imgcontent=requests.get(x)
       with open(r'/pic/enterdesk/'+x.split("/")[-1], 'wb') as file:
         file.write(imgcontent.content)
print("共计%d张图片被下载"%pages)         


'''
e:\>python ex20.py
共计12448张图片被下载
'''
就是浪费了我不少时间,一万多张图片 被成功下载

LuLD 发表于 2020-3-4 10:24:24

学习学习
页: [1]
查看完整版本: 解析一个网站: