频道栏目
首页 > 资讯 > Python 实例 > 正文

selenium练习动漫爬虫,动态随机加载反爬代码

18-04-25        来源:[db:作者]  
收藏   我要投稿

在学习了selenium后,就想试试爬一爬动漫,在微信社区里又看到一个腾讯动漫爬虫与动态随机加载反爬破解实战的文章,就试着跑了一下,还可以。用到了PhantomJS自动触发漫画图片以及js(window.scrollTo()实现页面滑动,自动触发触剩下的多张漫画图片),最后用urllib提取并保存本地。

话不多说,上代码,重点已做注释:

 

#--*-- coding:utf-8 --*--
from selenium import webdriver
import time
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import re
import urllib.request
import warnings

warnings.filterwarnings("ignore")
#基于PhantomJS创建一个浏览器,并且设置一下用户代理,否则可能出现界面不兼容的情况
dcap=dict(DesiredCapabilities.PHANTOMJS)
dcap["phantomjs.page.settings.userAgent"]=("Mozilla/5.0(Windows NT 6.1;Win64;x64)")
browser=webdriver.PhantomJS(desired_capabilities=dcap)

#通过PhantomJS打开相关动漫网页,将相关动漫图片地址触发出来
#打开动漫的第一页
browser.get('http://ac.qq.com/ComicView/index/id/539443/cid/1')
for i in range(10):
    js='window.scrollTo('+str(i*1280)+','+str((i+1)*1280)+')'  #把内容滚动到指定的坐标
    browser.execute_script(js)
    time.sleep(1)
#将打开的界面截图保存,方便观察
a=browser.get_screenshot_as_file(r'C:\Users\yyduan\Desktop\test.jpg')
#获取当前页面所有源码(此时包含出发出来的异步加载的资源)
data=browser.page_source
#将相关网页源码写入本地文件中,方便分析
fh=open(r'C:\Users\yyduan\Desktop\dongman.html','w',encoding='utf-8')
fh.write(data)
fh.close()
browser.quit()
#构造正则表达式提取动漫图片资源网址
pat='
相关TAG标签
上一篇:istio安装步骤实践
下一篇:运行负载测试的离线负载时出现错误
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站