抓取biqukan
#python3.7
'''
功能:实现www.biqukan.com/1_1094/5403177.html小说下载为txt
v1.0
'''
import requests,sys,time
from lxml import etree
##0.获取所有章节url
def get_url_list(catalog_url):
res=requests.get(catalog_url)
#time.sleep(1)
if res.status_code==200:
text=res.text
html=etree.HTML(text)
hrefs=html.xpath('//div[@class="listmain"]/dl/dt[2]/following-sibling::*/a/@href')
#print('hrefs')
return hrefs
return None ##1.获取页面
def get_one_page(url):
res=requests.get(url)
#time.sleep(1)
if res.status_code==200:
return res.text
return None ##2.解析页面
def parse_one_page(text):
html=etree.HTML(text)
title=html.xpath('//div[@class="content"]/h1//text()')
content=html.xpath('//div[@class="showtxt"]//text()') #去掉换行
contents=''.join(content).replace('\xa0'*8,'\n'*2)#把列表转换为一整段文本,并把8个空格换为2个换行
#print(title,contents) #print(title)
return title,contents #返回多个参数,相当于返回一个元组return(title,content) ##3.保存内面
def write_to_file(title,contents):
with open('一念永恒.txt','a',encoding='utf-8')as f:
f.write(title[0]+'\n'+contents+'\n') #for content in contents:
# f.write(content) ##主函数
def main():
#0.获取章节列表的网址
catalog_url='https://www.biqukan.com/1_1094/'
urls=get_url_list(catalog_url)
#print(urls)
#1.把网址传入详情抓取页面,并保存
for i in range(len(urls)):
rel_url='https://www.biqukan.com'+urls[i]
print(rel_url)
text=get_one_page(rel_url)
#接收2步return的多个参数写法a,b=(x,y)
title,contents=parse_one_page(text)
#print(title,contents)
#写入txt
write_to_file(title[0],contents)
#显示下载进度
sys.stdout.write(" 已下载:%.3f%%" % float(i/len(urls)) + '\r')
sys.stdout.flush() ##执行入口
if __name__=='__main__':
main()
抓取biqukan的更多相关文章
- 【爬虫】biqukan抓取2.0版
#!python3.7 import requests,sys,time,logging,random from lxml import etree logging.basicConfig(level ...
- 笔趣看小说Python3爬虫抓取
笔趣看小说Python3爬虫抓取 获取HTML信息 解析HTML信息 整合代码 获取HTML信息 # -*- coding:UTF-8 -*- import requests if __name__ ...
- 用WebRequest +HtmlAgilityPack 从外网抓取数据到本地
相信大家对于WebRequest 并不陌生,我们在C#中发请求的方式,就是创建一个WebRequest .那么如果我们想发一个请求到外网,比如国内上不了的一些网站,那么该怎么做呢? 其实WebRequ ...
- Phantomjs+Nodejs+Mysql数据抓取(2.抓取图片)
概要 这篇博客是在上一篇博客Phantomjs+Nodejs+Mysql数据抓取(1.抓取数据) http://blog.csdn.net/jokerkon/article/details/50868 ...
- [转]Fiddler抓取Android真机上的HTTPS包
此篇文章转载自:http://blog.csdn.net/roland_sun/article/details/30078353 工作中经常会需要对一些app进行抓包, 但是每次默认都是只抓http请 ...
- 爬虫技术 -- 进阶学习(十)网易新闻页面信息抓取(htmlagilitypack搭配scrapysharp)
最近在弄网页爬虫这方面的,上网看到关于htmlagilitypack搭配scrapysharp的文章,于是决定试一试~ 于是到https://www.nuget.org/packages/Scrapy ...
- Phantomjs+Nodejs+Mysql数据抓取(1.数据抓取)
概要: 这篇博文主要讲一下如何使用Phantomjs进行数据抓取,这里面抓的网站是太平洋电脑网估价的内容.主要是对电脑笔记本以及他们的属性进行抓取,然后在使用nodejs进行下载图片和插入数据库操作. ...
- 网络爬虫:使用Scrapy框架编写一个抓取书籍信息的爬虫服务
上周学习了BeautifulSoup的基础知识并用它完成了一个网络爬虫( 使用Beautiful Soup编写一个爬虫 系列随笔汇总 ), BeautifulSoup是一个非常流行的Python网 ...
- 网络爬虫: 从allitebooks.com抓取书籍信息并从amazon.com抓取价格(3): 抓取amazon.com价格
通过上一篇随笔的处理,我们已经拿到了书的书名和ISBN码.(网络爬虫: 从allitebooks.com抓取书籍信息并从amazon.com抓取价格(2): 抓取allitebooks.com书籍信息 ...
随机推荐
- Java中String类两种实例化的区别(转)
原文:http://blog.csdn.net/wangdajiao/article/details/52087302 一.String类的第一种方式 1.直接赋值 例:String str = &q ...
- mvn install package区别
package是把jar打到本项目的target下,而install时把target下的jar安装到本地仓库,供其他项目使用
- 网页制作中规范使用DIV+CSS命名规则,可以改善优化功效特别是团队合作时候可以提供合作制作效率,具体DIV CSS命名规则CSS命名大全内容如下:
页头:header 如:#header{属性:属性值;}或.header{属性:属性值;},也许你需要了解class与id区别及用法登录条:loginBar 标志:logo ...
- CentOS安装HBase
1.下载HBASE http://www.apache.org/dyn/closer.cgi/hbase/ 2.解压文件到安装目录 #mkdir hbase #cd hbase #tar -zxvf ...
- ATM_购物车作业
作业要求 模拟实现一个ATM + 购物商城程序 额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 支持多账户登录 支持账户间转账 记录每月日常消费流 ...
- seller【2】Mock数据(接口访问配置)
Mock数据 在文件[vue.config.js] - devServer 字段 - before(app)函数配置数据接口访问 const appData = require('./data.jso ...
- ES6封装原生ajax请求
http (data) { return new Promise((resolve, reject) => { var xhr = new XMLHttpRequest(); xhr.onrea ...
- php使用solr全文搜索引擎
前言 本来以为网上已经有了类似博文,不想重复,可是一圈搜下来,都是一些内容不甚明了的文章,或者solr版本太过老,参考价值不高,更有甚者,直接拷贝的别人的内容.一篇博客,各大平台都能看到,也不见转载链 ...
- python-selenium无法调用浏览器的问题
一直有这个问题 问题:selenim不能调用浏览器 File "/Users/ligaijiang/PycharmProjects/Runoob/venv/lib/python3.7/sit ...
- Centos 中 vi 和vim 的区别
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面. vim的这些优势主要体现在以下几个方面:1.多级撤消我们知道在vi里,按 u只能撤消上次 ...