text = soup.find('div', {'class': 'mulu'})  #查找目录,坑死我了。就这个东西,
知乎上看别人写的爬取网络小说,这个最适合我。
我一开始老是使用beautifulsoup ,find老是不准,原来是这个样子的。这个格式的。真是太无情了。
不准的原因还有一个,那就是解析的页面错了。愚蠢的人类
继续学习。
作者:周小馬
链接:https://www.zhihu.com/question/48900224/answer/266561350
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 # -*- coding: utf-8 -*-
# 导入俩库,足够了
import requests
from bs4 import BeautifulSoup url = "http://www.88dushu.com/xiaoshuo/2/2392/index.html" # 小说索引页
url_text = "http://www.88dushu.com/xiaoshuo/2/2392/" # 小说主页面,后面还需加上每一章的链接
page = range(174, 294) # 第三部是174-294页 # 定义第一个函数, 用来爬取每一章的url和章节名
def get_url(url):
content = requests.get(url).content
soup = BeautifulSoup(content)
# 找到每一章所在的位置,都在'li'这个标签
text = soup.find('div', {'class': 'mulu'}).find('ul').find_all('li')
urls = []
titles = []
for i in page: # 循环第三部的每一章
url1 = text[i].find('a').get('href')
title = text[i].find('a').get_text()
urls.append(url1)
titles.append(title)
#返回链接和章节名
return urls, titles # 定义第二个函数,用来得到每一章的内容,并存入TXT文件
def get_text():
# 从上一个函数获取链接和章节名
urls, titles = get_url(url)
# 文本文件设置为追加模式'a',避免前面的内容被覆盖
f = open('d:/kuanglong.txt', 'a')
for i in range(len(urls)):
url_tt = url_text + str(urls[i]) # 每一章完整的链接
content = requests.get(url_tt).content
soup = BeautifulSoup(content)
# 得到一章的内容
text = soup.find('div', {'class': 'yd_text2'}).get_text()
# 将得到的内容清洗,去除广告
text = text.replace("****[ 请到 六九中文阅读最新章节 ]****", '').replace('[\****/[ 六九中文急速更新 ]\****/]', '')\
.replace('\xa0', '')
# 章节名 + 章节内容
texts = titles[i] + text
# 写入txt文件
f.write(texts)
# 循环完之后关闭文件句柄
f.close() # 运行程序
if __name__ == '__main__':
get_text()

获取文档链接

for link in soup.find_all('a'):
print(link.get('href'))
# http://example.com/elsie
# http://example.com/lacie
# http://example.com/tillie

获取文档文字内容

print(soup.get_text())
# The Dormouse's story
#
# The Dormouse's story
#
# Once upon a time there were three little sisters; and their names were
# Elsie,
# Lacie and
# Tillie;
# and they lived at the bottom of a well.
#
# ...

慢不要快,稳才是对的。

Beautifusoup的更多相关文章

  1. 爬虫实例之使用requests和Beautifusoup爬取糗百热门用户信息

    这次主要用requests库和Beautifusoup库来实现对糗百的热门帖子的用户信息的收集,由于糗百的反爬虫不是很严格,也不需要先登录才能获取数据,所以较简单. 思路,先请求首页的热门帖子获得用户 ...

  2. BeautifuSoup的使用

    BeautifulSoup是一个模块,该模块用于接收一个HTML或XML字符串,然后将其进行格式化,之后遍可以使用他提供的方法进行快速查找指定元素,从而使得在HTML或XML中查找指定元素变得简单.

  3. 爬虫工具--Beautifusoup

    import requests from bs4 import BeautifulSoup s=requests.Session() r=s.get('https://www.tumblr.com/l ...

  4. 【转】Python练习,网络爬虫框架Scrapy

    一.概述 下图显示了Scrapy的大体架构,其中包含了它的主要组件及系统的数据处理流程(绿色箭头所示).下面就来一个个解释每个组件的作用及数据的处理过程. 二.组件 1.Scrapy Engine(S ...

  5. python Scrapy安装和介绍

    python Scrapy安装和介绍 Windows7下安装1.执行easy_install Scrapy Centos6.5下安装 1.库文件安装yum install libxslt-devel ...

  6. 爬虫:把廖雪峰的教程转换成 PDF 电子书

    写爬虫似乎没有比用 Python 更合适了,Python 社区提供的爬虫工具多得让你眼花缭乱,各种拿来就可以直接用的 library 分分钟就可以写出一个爬虫出来,今天就琢磨着写一个爬虫,将廖雪峰的 ...

  7. 利用python设计PDF报告,jinja2,whtmltopdf,matplotlib,pandas

    转自:https://foofish.net/python-crawler-html2pdf.html 工具准备 弄清楚了网站的基本结构后就可以开始准备爬虫所依赖的工具包了.requests.beau ...

  8. Scrapy 爬虫入门 +实战

    爬虫,其实很早就有涉及到这个点,但是一直没有深入,今天来搞爬虫.选择了,scrapy这个框架 http://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/tut ...

  9. Scrapy架构及其组件之间的交互

    最近在学Python,同时也在学如何使用python抓取数据,于是就被我发现了这个非常受欢迎的Python抓取框架Scrapy,下面一起学习下Scrapy的架构,便于更好的使用这个工具. 一.概述 下 ...

随机推荐

  1. php 使用sendmail发送邮件

    php 使用sendmail发送邮件 1.配置php.ini SMTP=smtp.163.com sendmail_from = 17760273453@163.com sendmail_path = ...

  2. 020-Spring Boot 监控和度量

    一.概述 通过配置使用actuator查看监控和度量信息 二.使用 2.1.建立web项目,增加pom <dependency> <groupId>org.springfram ...

  3. F110 参数保存和重新运行录屏

    **初始界面回车 PERFORM frm_dynpro USING ' 'X'. PERFORM frm_dynpro USING '' 'BDC_CURSOR' 'F110V-LAUFD'. PER ...

  4. ABAP f4帮助输入多个值

    *---------------------------------------------------------------------- * INITIALIZATION *---------- ...

  5. Java底层代码实现多文件读取和写入

    需求: "E:/data/"目录下有四个文件夹,如下: 每个文件夹下有几个.csv文件,如下: 将每个文件夹下的.csv文件合并成一个以该文件夹命名的.csv文件. 做法: 找到& ...

  6. 【LeetCode】最大子阵列 Maximum Subarray(贪婪&分治)

    描述: Given an integer array nums, find the contiguous subarray (containing at least one number) which ...

  7. 【Head First Servlets and JSP】笔记19:JavaBeans与JSP动作元素(<jsp:setProperty.....>、<jsp:getProperty.....>)

    内容来自imooc. 1.什么是JSP动作元素 2.在JSP页面中如何使用Javabeans <jsp:......>表示这是一个JSP动作元素 3.使用JSP动作元素创建JavaBean ...

  8. php自带函数去除html标记

    strip_tags 去掉 HTML 及 PHP 的标记. 语法: string strip_tags(string str); 传回值: 字串 函式种类: 资料处理 内容说明 本函式可去掉字串中包含 ...

  9. https网站无法加载http路径的js和css

    在https的网站中引用http路径的js或css会导致不起作用,其形如: <script src="http://code.jquery.com/jquery-1.11.0.min. ...

  10. 20145231《Java程序设计》课程总结

    20145231 <Java程序设计>课程总结 每周读书笔记链接汇总 ● 20145231<Java程序设计>第一周学习总结 ●20145231<Java程序设计> ...