python爬取哦漫画
import requests
from lxml import etree
from bs4 import BeautifulSoup
import os
from selenium import webdriver #解析每个漫画分页并下载漫画
def manhua(url): browser.get(url) #获取模拟访问的页面源码
html=browser.page_source html = etree.HTML(html)
img_url = html.xpath('//img[@id="mangaFile"]/@src')[0]
alt = html.xpath('/html/body/div[2]/div[2]/h1/a/text()')[0]
title = html.xpath('/html/body/div[2]/div[2]/h2/text()')[0]
print(img_url,alt,title) # print(html) path='./漫画/'+alt+'/'+title+'/'
if not os.path.exists(path):
os.makedirs(path)
fname=img_url.split('/')[-1]
# print(fname) print(os.path.join(path,fname)) # request.urlretrieve(img_url,os.path.join(path,fname)) #请求图片地址
response = requests.get(img_url)
#二进制解码
data= response.content
#保存文件
with open(path+fname,'wb') as f:
f.write(data)
#解析获取漫画分页链接
def manhua_url(url):
response = requests.get(url)
response.encoding = response.apparent_encoding
html = response.text
html = etree.HTML(html)
# print(html)
#i为漫画页数
i = html.xpath('/html/body/div[2]/div[2]/span/text()')[1][1:-1]
i=int(i)
# print(i)
#找到分页规律
#拼接分页链接,选择用format函数
url = url +'/index.html?p={}'
# print(url)
for n in range(1,i+1):
fullurl = url.format(n)
print(fullurl)
# time.sleep(2)
#fullurl为所有的分页漫画链接
manhua(fullurl) #解析列表页
def list(lb_url):
response = requests.get(lb_url)
response.encoding = response.apparent_encoding
html = response.text
html = BeautifulSoup(html,'lxml')
#匹配所有章节链接
url_list = html.select('div.subBookList ul li')
for url in url_list :
url = url.select('a')[0].get('href').split('/')[-2] # print(url)
fullurl = os.path.join(lb_url,url)
print(fullurl)
#章节链接
manhua_url(fullurl) # print(url_list)
# print(html) #解析首页
def shouye():
#首页链接
base_url = 'http://www.omanhua.com/'
#发起请求
response = requests.get(base_url)
#解码
response.encoding = response.apparent_encoding
#获取返回的网页
html = response.text
# print(html)
#解析
html =BeautifulSoup(html,'lxml')
#匹配最热漫画链接
url_list = html.select('ul#cartoon_image_show1 li')
for url in url_list:
# print(url)
url = url.select('a')[0].get('href')[1:]
# alt = url.select('a')
# print(alt)
#拼接链接
fullurl = os.path.join(base_url,url)
print(fullurl) list(fullurl)
if __name__ == '__main__':
# 用自动测试模块selenium模拟浏览器访问,这里用谷歌 图片加载获取不到图片链接
#后面的路径是chorm驱动路径
browser = webdriver.Chrome(executable_path=r'C:\Users\zhaozhi\Desktop\chromedriver.exe')
shouye() 刚开始自学爬虫不久,代码可能写的有点繁琐,希望和大家一起学习学习进步
python爬取哦漫画的更多相关文章
- Node.js/Python爬取网上漫画
某个周日晚上偶然发现了<火星异种>这部漫画,便在网上在线看了起来.在看的过程中图片加载很慢,而且有时候还不小心点到广告,大大延缓了我看的进度.后来想到能不能把先把漫画全部抓取到本地再去看. ...
- Python 爬取所有51VOA网站的Learn a words文本及mp3音频
Python 爬取所有51VOA网站的Learn a words文本及mp3音频 #!/usr/bin/env python # -*- coding: utf-8 -*- #Python 爬取所有5 ...
- python爬取网站数据
开学前接了一个任务,内容是从网上爬取特定属性的数据.正好之前学了python,练练手. 编码问题 因为涉及到中文,所以必然地涉及到了编码的问题,这一次借这个机会算是彻底搞清楚了. 问题要从文字的编码讲 ...
- python爬取某个网页的图片-如百度贴吧
python爬取某个网页的图片-如百度贴吧 作者:vpoet mail:vpoet_sir@163.com 注:随意copy,不用告诉我 #coding:utf-8 import urllib imp ...
- Python:爬取乌云厂商列表,使用BeautifulSoup解析
在SSS论坛看到有人写的Python爬取乌云厂商,想练一下手,就照着重新写了一遍 原帖:http://bbs.sssie.com/thread-965-1-1.html #coding:utf- im ...
- 使用python爬取MedSci上的期刊信息
使用python爬取medsci上的期刊信息,通过设定条件,然后获取相应的期刊的的影响因子排名,期刊名称,英文全称和影响因子.主要过程如下: 首先,通过分析网站http://www.medsci.cn ...
- python爬取免费优质IP归属地查询接口
python爬取免费优质IP归属地查询接口 具体不表,我今天要做的工作就是: 需要将数据库中大量ip查询出起归属地 刚开始感觉好简单啊,毕竟只需要从百度找个免费接口然后来个python脚本跑一晚上就o ...
- Python爬取豆瓣指定书籍的短评
Python爬取豆瓣指定书籍的短评 #!/usr/bin/python # coding=utf-8 import re import sys import time import random im ...
- python爬取网页的通用代码框架
python爬取网页的通用代码框架: def getHTMLText(url):#参数code缺省值为‘utf-8’(编码方式) try: r=requests.get(url,timeout=30) ...
随机推荐
- Delphi - Windows系统下,Delphi调用API函数和7z.dll动态库,自动把文件压缩成.tar.gz格式的文件
项目背景 应欧美客户需求,需要将文件压缩成.tar.gz格式的文件,并上传给客户端SFTP服务器. 你懂的,7-Zip软件的显著特点是文件越大压缩比越高,在Linux系统上相当于我们Windows系统 ...
- c++学习笔记_4
前言:本笔记所对应的课程为中国大学mooc中北京大学的程序设计与算法(三)C++面向对象程序设计,主要供自己复习使用,且本笔记建立在会使用c和java的基础上,只针对与c和java的不同来写 运算符重 ...
- CCPC 网络赛
array 做法 比赛中的表现..... 已经无法言语形容了. 题意是,查询前缀中大于某个数字的 mex,在线. 一下把问题转化为偏序问题.... 带修主席树?????这下好,直接一箭穿心,武将被移除 ...
- Springboot集成swagger2生成接口文档
[转载请注明]: 原文出处:https://www.cnblogs.com/jstarseven/p/11509884.html 作者:jstarseven 码字挺辛苦的..... 一 ...
- 【ThinkPHP】API控制器中加入析构函数
<?php namespace app\api\controller; use think\Controller; class User extends Controller { public ...
- mysql数据库事务隔离原理
今天在学习JDBC的时候看到了关于MySQL的事务的隔离级别的问题,感觉内容挺高级的,所以记录一篇文章,以备后面使用. 数据库隔离级别有四种,应用<高性能mysql>一书中的说明: 然后说 ...
- 关于设置tomcat端口为80的事
今天有人要求tomcat服务器的访问地址不能带端口访问, 也就是说只能用80端口访问网站. 那么问题来了, Ubuntu系统禁止root用户以外的用户访问1024以下的商品, 因此tomcat 默认为 ...
- SSO-CAS实现单点登录服务端
目录 CAS-SSO 一.单点登录-CAS 二.下载搭建CAS 1. 下载 CAS 5.3 2. 导入IDEA 3. 打包war 3. war包部署到Tomcat 4. 启动Tomcat,访问 htt ...
- 查看 Linux 系统版本信息
博客地址:http://www.moonxy.com 一.前言 Linux 下如何查看内核信息.发行版信息,系统位数.CPU 信息等等,Windows 下我们可以通过各种图形化软件来查看,但是对于 L ...
- 55 (OC)* 图片圆角处理
iOS图片设置圆角性能优化 问题 圆角虽好,但如果使用不当,它就是你的帧数杀手,特别当它出现在滚动列表的时候.下面来看圆角如何毁掉你的流畅度的. 实测 layer.cornerRadius 我创建 ...