Python实战项目网络爬虫 之 爬取小说吧小说正文

本次实战项目适合,有一定Python语法知识的小白学员。本人也是根据一些网上的资料,自己摸索编写的内容。有不明白的童鞋,欢迎提问。

目的:爬取百度小说吧中的原创小说《猎奇师》部分小说内容

链接:http://tieba.baidu.com/p/4792877734

首先,自己定义一个类,方便使用。其实类就像一个“水果篮”,这个“水果篮”里有很多的“水果”,也就是我们类里面定义的变量啊,函数啊等等,各种各样的。每一种"水果"都有自己的独特的口味,也即是各个函数实现的功能各不相同。

然后,按照这个思路,既然要爬取小说,那么肯定要有目标网页的地址,也就是上面我给的那个连接。其实就像买水果之前,我们要找到水果店。

打开目标贴吧后,会发现里面有很多的贴子,有楼主发的,还有读者评论的,很多很杂。不过,没关系。度娘给了我们一个强大的功能,只看楼主。这就是我们的切入点。点击只看楼主按钮,哈哈,此时呈现在眼前的就是楼主的主要内容啦。

相应的,此时的网页也有所改变,地址上多了一个只看楼主的标记 http://tieba.baidu.com/p/4792877734?see_lz=1

所以,我们在定义类中的初始化函数时,就要有这个标记。

接下来,我们开始在选择不同口味的水果。我们要先获取网页的源代码,就需要有一个getPage的函数。函数里需要有我们的页码,注意我们选择不同也的小说,会发现,我们的地址也是有稍稍变动的,比如:第二页连接:http://tieba.baidu.com/p/4792877734?see_lz=1&pn=2     多了&pn=2。这个我们要整合一下。

(未完>>>>>>>>>明晚继续)

下面是我的代码:

 1 #-*- coding:utf-8 -*-
 2 import urllib
 3 import urllib2
 4 import re
 5
 6 # 百度小说吧  原创小说《猎奇师》
 7 # 连接http://tieba.baidu.com/p/4792877734?see_lz=1
 8 # 第二页连接:http://tieba.baidu.com/p/4792877734?see_lz=1&pn=2
 9 class LQS:
10     def __init__(self,daseUrl,seeLZ):
11         self.daseUrl = daseUrl
12         self.seeLZ =‘?see_lz=‘ + str(seeLZ)
13     # 传入页码,获取网页源代码
14     def getPage(self,pageNum):
15         try:
16             # 拼接,地址 + 楼主参数 + 页数
17             url = self.daseUrl + self.seeLZ + ‘&pn=‘ + str(pageNum)
18             request = urllib2.Request(url)
19             response = urllib2.urlopen(request)
20             return response.read()
21         except Exception,e:# 处理异常
22             print e
23     # 获取标题
24     def getTitle(self,pageNum):
25         html = self.getPage(pageNum)
26         reg = re.compile(r‘<title>【原创】恐怖故事 (.*?)_小说吧_百度贴吧</title>‘)
27         items = re.findall(reg,html)
28         # 将标题写入文件
29         for item in items:
30             f = open(‘lqshi.txt‘,‘w‘) # 文件名最好是英文,中文识别不了
31             f.write(‘标题‘ + ‘\t\t‘ + item)
32             f.close()
33         return items
34     # 获取正文
35     def getContent(self,pageNum):
36         html = self.getPage(pageNum)
37         reg = re.compile(r‘class="d_post_content j_d_post_content ">          (.*?)</div><br>‘)
38         req = re.findall(reg,html)
39         # 将标题写入文件
40         for i in req:
41             removeAddr = re.compile(‘<a.*?</a>‘)
42             i = re.sub(removeAddr,"",i)# 找到并替换
43             i = i.replace("<br>","\n  ")
44             f = open(‘lqshi.txt‘,‘a‘)# 此处是写入正文内容,所以用a
45             f.write( ‘\n\n\n‘ + i)
46             f.close()
47         return i
48
49 daseURL = ‘http://tieba.baidu.com/p/4792877734‘
50 lqShi = LQS(daseURL,1)
51 print "爬虫已启动..."
52 for i in range(4):
53     lqShi.getTitle(i)
54     lqShi.getContent(i)
55     print "正在抓取第%s页的内容" % (i+1)
时间: 2024-10-12 09:56:42

Python实战项目网络爬虫 之 爬取小说吧小说正文的相关文章

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

前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http://t.cn/A6Zvjdun 很多好看的小说只能看不能下载,教你怎么爬取一个网站的所有小说 知识点: requests xpath 全站小说爬取思路 开发环境: 版 本:anaconda5.2.0(python3.6.5) 编辑器:pycharm 第三方库: requests parsel 进行

Python网络爬虫:爬取古诗文中的某个制定诗句来实现搜索

python编译练习,为了将自己学习过的知识用上,自己找了很多资料.所以想做一个简单的爬虫,代码不会超过60行.主要用于爬取的古诗文网站没有什么限制而且网页排布很规律,没有什么特别的东西,适合入门级别的爬虫. 抓取目标站点的准备工作 Python的版本是:3.4.3. 爬取的目标是: 古诗文网(www.xzslx.net) 随意打开一个古诗文网的古诗页面,查看它的网页地址就能看到,古诗的地址基本是 "www.xzslx.net/shi/+ id + .html" 构成,如下图: 然后对

python网络爬虫《爬取get请求的页面数据》

一.urllib库 urllib是python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在python3中的为urllib.request和urllib.parse,在python2中是urllib和urllib2. 二.由易到难的爬虫程序: 1.爬取百度首页所有数据值 #!/usr/bin/env python # -*- coding:utf-8 -*- #导包 import urllib.request import urllib.parse

Python网络爬虫_爬取Ajax动态加载和翻页时url不变的网页

1 . 什么是 AJAX ? AJAX = 异步 JavaScript 和 XML. AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面. 几个常见的用到ajax的场景. 比如你在逛知乎,你没有刷新过网页,但是你却能看到你关注的用户或者话题有了新动态的消息提示. 还比如,我们在看视频时,可以看到下面

python学习笔记之爬虫之爬取百度贴吧某一帖子

从大神这儿静觅 ? Python爬虫实战二之爬取百度贴吧帖子讲的很不错,按照步骤一步一步的做效果很明显.第一次真正做出一个小爬虫程序,所以在csdn写出来也是对自己的一种鞭策一种鼓励,不喜勿喷,还请大神不吝赐教. 因为大神博文讲的很详细(真心详细),所以步骤我就不一一细说了 先把自己的代码贴出来(大部分一样): #!/usr/bin/env python # coding=utf-8 import urllib2 import urllib import re class Tool(object

java的简单网络爬虫(爬取花瓣网的图片)

因为本人对爬虫比较感兴趣,加上之前也写过一些简单的python爬虫,所以在学完java基础后写了一个简单的网络图片爬虫.废话不多说直接上过程代码.(爬取的图源来自花瓣网:https://huaban.com/boards/favorite/beauty/) 源url页面分析 拿到爬取的源url,首先是分析页面哪些东西是要爬取的,这个页面是美女分类的画板页面,这里我们要爬的就是要爬取某个画板下面的所有图片.这里为了简单爬取我就选取了该页面推荐的几个画板.查看本页面源码可以很快找到推荐画板的url资

如何通过jsoup网络爬虫工具爬取网页数据,并通过jxl工具导出到excel

1:闲话少说,直接看需求: 抓取的url:http://www.shparking.cn/index.php/welcome/municipal_parking?key=&per_page=. 参考的资料:http://blog.csdn.net/lmj623565791/article/details/23272657 需求:抓取指定url,共n页信息(即需要分析内部链接),将页面上的停车信息抓取出来(即需要分析停车信息的特征),并导入到excel中. 问题分析:因为页面上存在相同的停车场信息

网络爬虫(爬取网站图片,自动保存本地)

事先申明一点,这个人品没有什么问题,只是朋友发一段python源码,再这里分享大家. 1 import requests 2 from lxml import html 3 import os 4 from multiprocessing.dummy import Pool as ThreadPool 5 6 def header(referer): 7 headers = { 8 'Host': 'i.meizitu.net', 9 'Pragma': 'no-cache', 10 'Acce

爬虫实践-爬取起点中文网小说信息

qidian.py: import xlwtimport requestsfrom lxml import etreeimport time all_info_list = [] def get_info(url): html = requests.get(url) selector = etree.HTML(html.text) infos = selector.xpath('//ul[@class="all-img-list cf"]/li') for info in infos: