Python 爬虫实践-抓取小说

网络爬虫(Web Spider),又被称为网页蜘蛛,是一种按照一定的规则,自动地抓取网站信息的程序或者脚本。

爬虫流程:

1,先由 urllib 的 request 打开 Url 得到网页 html 文档
2,浏览器打开网页源代码分析元素节点
3,通过 Beautiful Soup 或正则表达式提取想要的数据
4,存储数据到本地磁盘或数据库(抓取,分析,存储)

下面以爬取 笔趣网 里面的小说为例:
整个逻辑我这里倒着来讲述;

下图是 一篇小说某个章节的正文内容,我们用 Chrome 浏览器打开后,右键 -> 检查 ,再按照下图操作;
在这里插入图片描述
从上图可以,看出 一篇小说的某个章节的正文在 <div class = ‘showtxt’> 的节点里面,知道这个规律之后,我们就可以开始码代码了;

def getContent(target):
	req = requests.get(url = target)
	# 这里注意 encode,否则可能乱码
	html = req.text.encode(req.encoding, 'ignore')
	bf = BeautifulSoup(html, "lxml")
	# 找到所有 <div class = 'showtxt'> 节点
	texts = bf.find_all('div', class_ = 'showtxt')
	# 替换掉每个段落前面的 8个 &nbsp;
	texts = texts[0].text.replace('\xa0'*8,'\n\n')
	return texts

上面这段代码是拿到某个章节的内容, 接下来看看 一篇小说的所有章节怎么拿到?
在这里插入图片描述
上图是 一篇小说的所有章节目录,从上面这个规律,可以发现就是 <div class = ‘listmain’> 里面的所有 <a> 标签;

def getZjUrl(bookurl):
	zjlist = []
	server = 'http://www.biqukan.com/'
	req = requests.get(url = bookurl) 
	# 这里注意 encode,否则可能乱码
	html = req.text.encode(req.encoding, 'ignore')
	div_bf = BeautifulSoup(html, "lxml")
	# 找到所有 <div class = 'listmain'> 节点
	div = div_bf.find_all('div', class_ = 'listmain')
	# 再在 div 里面找到所有 <a> 节点
	a_bf = BeautifulSoup(str
  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值