网络爬虫(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个
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
本文介绍了使用Python爬虫抓取笔趣网小说的步骤。首先,通过urllib.request获取网页HTML,接着利用Beautiful Soup解析并提取所需内容。每个章节的内容位于<div class='showtxt'>节点中,而所有章节目录在<div class='listmain'>内的<a>标签。最后,将抓取的小说数据存储到本地。完整代码实现了抓取一个作者的所有小说,但因涉及大量数据,运行可能较慢。
最低0.47元/天 解锁文章
3692

被折叠的 条评论
为什么被折叠?



