最近无聊整理的爬虫代码,可以自动爬取腾讯动漫的任意漫画,思路如下:

1. 先获取想下载的动漫url, 这里用了 getUrls ,直接获取动漫的最后一章

2. 然后进入到该动漫去获取要下载的图片url

3. 下载到本地

import os
import random
import time
from random import randintfrom bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver import DesiredCapabilities
import urllib.request as urllib2ROOT_URL = "http://ac.qq.com"
target_url = [ROOT_URL + "/Comic/comicInfo/id/505430",  # 海贼王
]
ua_list = ["Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv2.0.1) Gecko/20100101 Firefox/4.0.1","Mozilla/5.0 (Windows NT 6.1; rv2.0.1) Gecko/20100101 Firefox/4.0.1","Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.8.131 Version/11.11","Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"
]user_agent=random.choice(ua_list)
dir_path="D:/py/海贼王/"def getImageUrls(comic_url):'''通过Selenium和Phantomjs获取动态生成的数据'''urls = []dcap = dict(DesiredCapabilities.PHANTOMJS)dcap["phantomjs.page.settings.userAgent"] = ("Mozilla/4.0 (compatible; MSIE 5.5; windows NT)")browser = webdriver.PhantomJS(executable_path=r"E:\py\littlepy\tencent_cartoon\phantomjs-2.1.1-windows\bin\phantomjs.exe",desired_capabilities=dcap)browser.get(comic_url)imgs = browser.find_elements_by_xpath("//div[@id='mainView']/ul[@id='comicContain']//img")for i in range(0, len(imgs) - 1):if i == 1:  # 略过广告图片continueurls.append(imgs[i].get_attribute("src"))js = 'window.scrollTo( 800 ,' + str((i + 1) * 1280) + ')'browser.execute_script(js)time.sleep(randint(3, 6))browser.quit()print("urls=",urls)return urlsdef getUrls(comic_url):result = dict()req = urllib2.Request(comic_url)req.add_header('User-Agent', user_agent)print("url=",comic_url)response = urllib2.urlopen(req)soup = BeautifulSoup(response, "lxml")#print("soup=",soup)# 返回最近漫画中的最新20话page = soup.find(attrs={"class": "chapter-page-new works-chapter-list"}).find_all("a")  # 全部漫画 chapter-page-new works-chapter-listtitle = page[-1]['title']result[title] = ROOT_URL + page[-1]['href']print("title=",title)print("result=",result[title])return title,result[title]def downloadComics(dir_path, urls):for url in urls:urllib2.urlretrieve(url, dir_path + url[-8:-2])#print("url=",url[-9:-2])if __name__ == "__main__":title,result_url=getUrls(target_url[0])urls=getImageUrls(result_url)path=dir_path+title+"/"isExists = os.path.exists(path)if not isExists:os.makedirs(path)print(path + '    创建成功')downloadComics(path,urls)

  

转载于:https://www.cnblogs.com/Ronaldo-HD/p/9708060.html

Python 学习笔记---爬取海贼王动漫相关推荐

  1. python海贼王logo_Python 学习笔记---爬取海贼王动漫

    最近无聊整理的爬虫代码,可以自动爬取腾讯动漫的任意漫画,思路如下: 1. 先获取想下载的动漫url, 这里用了 getUrls ,直接获取动漫的最后一章 2. 然后进入到该动漫去获取要下载的图片url ...

  2. Python学习笔记-爬取B站电视剧《风犬少年的天空》弹幕并分析

    爬取B站电视剧<风犬少年的天空>弹幕并分析 写在前面 开始! 简单分析一下弹幕数据 蠢并痛苦着的学习过程... 干(烂)货环节-------弹幕的获取与整理 关于cid的获取 关于弹幕上限 ...

  3. Python爬虫学习笔记 -- 爬取糗事百科

    Python爬虫学习笔记 -- 爬取糗事百科 代码存放地址: https://github.com/xyls2011/python/tree/master/qiushibaike 爬取网址:https ...

  4. 【selenium爬虫】用selenium自动化爬虫爬取海贼王动漫图片

    以下内容为本人原创,欢迎大家观看学习,禁止用于商业用途,转载请说明出处,谢谢合作! ·作者:@Yhen ·原文网站:CSDN ·原文链接:https://blog.csdn.net/Yhen1/art ...

  5. [python学习] 简单爬取维基百科程序语言消息盒

    文章主要讲述如何通过Python爬取维基百科的消息盒(Infobox),主要是通过正则表达式和urllib实现:后面的文章可能会讲述通过BeautifulSoup实现爬取网页知识.由于这方面的文章还是 ...

  6. python学习之爬取ts流电影

    爬取ts流电影文件记录 需求 程序结构目录 编写代码 基本思路 代码编写 优化 需求 **前言**最近学习Python,语法规则.变量等也看完了,但是觉得啥也没记住,打开py不知道写啥,只能print ...

  7. 爬虫学习笔记--爬取静态网页

    声明:我这里是学习 唐松老师的<Python网络爬虫从入门到实践>的学习笔记 只是记录我自己学习的过程  详细内容请购买老师正版图书 import requestsr = requests ...

  8. python学习:爬取房源信息

    最近挤时间了解了一下python."纸上谈兵终觉浅 绝知此事要躬行",只有实际操作才能加深印象.这里参考这篇:https://www.cnblogs.com/gkf0103/p/7 ...

  9. 利用img请求一个html页面,爬虫学习笔记——爬取单个网页里的所有图片(入门)...

    最近闲着,想学一下爬虫 (^-^)V --[手动比耶]先从简单的练习开始吧~ 爬取单个网页里的所有图片,这个没有什么难点,因为不需要翻页哈哈哈哈. 我很喜欢一些文章中的配图,比如这篇,里面就会有很多电 ...

  10. python学习实践--爬取猫眼电影排行

    爬取前一定要注意观察网站的url地址,如果是分页的话,找出每一页不同的地址规律,同时,尽量在network选项卡部分查看网页源代码,否则源码可能经过JavaScript操作与原始请求不同. 抓取站点 ...

最新文章

  1. Urllib库函数、代理、爬取案例
  2. 如何在系统崩溃时从C++中获取函数调用栈信息?
  3. AI时代竟有智能化鸿沟,具备哪些条件才能跨过?
  4. 如何将参数传递给批处理文件?
  5. 虚拟机linux识别不了u盘_将Arch Linux安装到U盘
  6. matlab 工业相机 曝光时间_实战 | 相机标定
  7. HTML中From表单的常用type属性及用法【较全】
  8. PyWebIO,让 Pandas 原地起飞的神器!
  9. mysql 恢复空密码_mysql 找回密码
  10. win7 64下安装mysql-python报错的解决办法
  11. 16gU盘在Mac上格式化后在Windows上变成200M
  12. 环境在c盘_笔记本电脑常见故障--清理C盘空间
  13. 学计算机程序ui设计,学习UI设计需要什么样的电脑配置
  14. 文件或目录损坏且无法读取怎么删除文件或目录
  15. 时光机特效什么app好?建议收藏这些软件
  16. iTunes 播放音乐的歌词的软件:DynamicLyrics
  17. PHP-CGI远程代码执行
  18. 【Android】Android的应用架构
  19. 计算机教室日常维护制度,现代信息技术教室管理制度
  20. 力扣高频|算法面试题汇总(七):树

热门文章

  1. 大哥你遇到问题,博文在此,连找都懒得找吗?
  2. 一次荒唐的技术决策过程:排除研发总监,无技术参与
  3. mac卸载python3.8_如何使用Homebrew在Mac上默认设置Python3.8?
  4. char*赋值给std::string是深拷贝
  5. 贪吃蛇c语言代贴吧,【图片】C语言小游戏~贪吃蛇【c语言吧】_百度贴吧
  6. linux内核登录不上,在嵌入式板上启动linux内核后,用root登录不了
  7. C# NPOI NPOI加载 Excel加载 Excel读取 Excel写入 Excel修改 保证完整能用
  8. android获取组件id,Android 获取控件id的三种方式
  9. 空间计量模型_5种经典空间计量模型的回归命令、程序及原始数据:SAR模型、SDM模型、SAC模型、SEM模型及GSPRE模型...
  10. linux centos erlang,CentOS 7.7安装Erlang和Elixir