import urllib.request
from bs4 import BeautifulSoup
import re def gethtml(url):
page=urllib.request.urlopen(url)
html=page.read().decode('gbk')
soup=BeautifulSoup(html,"html.parser")
#print(soup)
return soup def getcontent(soup,load): #获取章节内容以及章节名称
content1=""
content=re.findall(r'<div id="content"><div id="adright"></div>(.*?)</div>',str(soup))
for i in range(0,len(content)):
content1+=content[i]
content2 = re.sub("</?\w+[^>]*>", "", content1)
content3=content2.replace('。','。\n\n\0\0\0\0\0\0')
#以上获取章节内容
zjname = re.findall(r'<div id="title">(.*?)</div>', str(soup))
#获取章节名称 with open(load, 'a', encoding='utf-8') as f:
f.write("\0\0\0\0\0\0-----------------------------------------------------------"+zjname[0]+"------------------------------------------------------\n\n"+content3) def book(soup):
bookurl=re.findall(r'<td class="odd"><a href="(.*?)">',str(soup)) #get every book url for i in range(0,len(bookurl)):
#找到“[点击阅读]按钮”的链接,以及书名
print(bookurl[i])
soup1=gethtml(bookurl[i])
allcontent=re.findall(r'</a>\xa0\xa0\xa0\xa0<a href="(.*?)">',str(soup1))
bookname=re.findall(r'<strong>(.*?)全集下载</strong>', str(soup1)) soup2=gethtml(allcontent[0])
#打开点击阅读的按钮链接,找到第一章的链接
firsturl1 = re.findall(r'<dd><a href="(.*?)">.*?</a></dd>', str(soup2))
headurl=bookurl[i][0:-4].replace("binfo","b")
firsturl2=headurl+"/"+firsturl1[0]
print(firsturl2) #打开链接,开始爬取内容,同时获取下一章内容,并判断是否到最后一章
soup3=gethtml(firsturl2)
k=0
load="d:/77/%s.txt" % bookname[0]
try: while True:
nexturl = re.findall(r'<li><a href="(.*?)">下一页', str(soup3))
getcontent(soup3,load)
soup3=gethtml(headurl+"/"+nexturl[0])
k+=1
print("第%d章下载完成" % int(k))
except: print("-------------------第%d本书下载完成---------------" % int(i+1)) url="http://www.bxwx9.org/modules/article/toplist.php?sort=dayvisit"
soup=gethtml(url)
load=book(soup)

保存到txt文件中

2017-05-28

22:58:35

爬取笔下wenxue小说的更多相关文章

  1. Python爬虫爬取全书网小说,程序源码+程序详细分析

    Python爬虫爬取全书网小说教程 第一步:打开谷歌浏览器,搜索全书网,然后再点击你想下载的小说,进入图一页面后点击F12选择Network,如果没有内容按F5刷新一下 点击Network之后出现如下 ...

  2. python之如何爬取一篇小说的第一章内容

    现在网上有很多小说网站,但其实,有一些小说网站是没有自己的资源的,那么这些资源是从哪里来的呢?当然是“偷取”别人的数据咯.现在的问题就是,该怎么去爬取别人的资源呢,这里便从简单的开始,爬取一篇小说的第 ...

  3. 如何用python爬虫从爬取一章小说到爬取全站小说

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http ...

  4. 爬虫入门(四)——Scrapy框架入门:使用Scrapy框架爬取全书网小说数据

    为了入门scrapy框架,昨天写了一个爬取静态小说网站的小程序 下面我们尝试爬取全书网中网游动漫类小说的书籍信息. 一.准备阶段 明确一下爬虫页面分析的思路: 对于书籍列表页:我们需要知道打开单本书籍 ...

  5. 使用requests+BeautifulSoup爬取龙族V小说

    这几天想看龙族最新版本,但是搜索半天发现 没有网站提供 下载, 我又只想下载后离线阅读(写代码已经很费眼睛了).无奈只有自己 爬取了. 这里记录一下,以后想看时,直接运行脚本 下载小说. 这里是从   ...

  6. 爬虫入门实例:利用requests库爬取笔趣小说网

    w3cschool上的来练练手,爬取笔趣看小说http://www.biqukan.com/, 爬取<凡人修仙传仙界篇>的所有章节 1.利用requests访问目标网址,使用了get方法 ...

  7. scrapy进阶(CrawlSpider爬虫__爬取整站小说)

    # -*- coding: utf-8 -*- import scrapy,re from scrapy.linkextractors import LinkExtractor from scrapy ...

  8. Python的scrapy之爬取6毛小说网的圣墟

    闲来无事想看个小说,打算下载到电脑上看,找了半天,没找到可以下载的网站,于是就想自己爬取一下小说内容并保存到本地 圣墟 第一章 沙漠中的彼岸花 - 辰东 - 6毛小说网  http://www.6ma ...

  9. 使用scrapy爬取金庸小说目录和章节url

    刚接触使用scrapy的时候,如果一开始就想实现特别复杂的配置,显然是不太现实的,用一些小的例子可以帮助自己理解各个模块. 今天的目标:爬取http://www.luoxia.com/shendiao ...

随机推荐

  1. Appium环境配置(二)

    一.使用Eclipse直接创建案例工程 1.打开Eclipse,[File]-->[New]-->[Project] 2.选择[Java Project]-->[Next] 3.输入 ...

  2. Java+Selenium如何解决空指针

    1.问题描述:浏览器获取当期窗口值获取为空.

  3. python全栈开发day12

    列表 创建列表: 基本操作: 索引 切片 追加 删除 长度 切片 循环 包含 #######################列表list类中提供的方法######################## ...

  4. tomcat去掉项目名称

    进入tomcat的conf目录,查看server.xml,找到<Host></Host>,在里面添加<Context path="" docBase= ...

  5. Github上Laravel开源排行榜Star数61-90名

    Github上Laravel开源排行榜Star数61-90名,罗列所有 Laravel 开源扩展包,含 Github Star 数量,下载数量和项目简介.默认排序是按Star数量从多到少来排 61.c ...

  6. fatal error: vector: No such file or directory

    jni/mac.cpp:28:18: fatal error: vector: No such file or directory jni/mac.cpp:29:18: fatal error: me ...

  7. android打印日志封装

    public class LogUtils { static String className;//类名 static String methodName;//方法名 static int lineN ...

  8. staticmethod()静态方法和classmethod类方法都是装饰器

    1.staticmethod()静态方法 使用@staticmethod目的是为了增加可读性,不需要参数self(不强制要求传递参数) 的方法都可以加上@staticmethod增加可读性 静态方法无 ...

  9. WeChat-结构

  10. jenkins 的一个BUG

    最近更新了一批jenkin插件,更新完问题来了全局设置无法保存了... 报错如下 Stack trace net.sf.json.JSONException: null object at net.s ...