• 欢迎访问1024小神,一个只会Python的程序猿不是一个好司机
  • 有什么想对我说的可以在留言板里给我留言哦~
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏1024小神吧

Python爬虫抓取笔趣阁小说

爬虫实战 1024小神 11个月前 (08-30) 362次浏览 1个评论

练习使用requests BeautifulSoup 抓取一本小说存放到D盘中

速度比较慢、抓取服务器容易中断

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# -*- coding:UTF-8 -*-
import requests
from bs4 import BeautifulSoup
import re
"""
获取书籍目录
"""
def getBookContents(url):
    req = requests.get(url=url)
    req.encoding = "gb2312"
    html = req.text
    dv_bf = BeautifulSoup(html, "html5lib")
    dv = dv_bf.find("div"class_="listmain")
    # dvs = dv_bf.find_all("div", class_="listmain")
    a_bf = BeautifulSoup(str(dv), "html5lib")
    = a_bf.find_all("a")
    book_contents_list = []
    = 0
    for content in a[13:]:
        book_title = content.string
        book_url = content.get("href")
        try:
            # 数据清洗 获取标题"章"字索引 若没有则出现异常 不记录数据
            book_title_index = str(book_title).index("章"0)
            # print(book_title_index)
            # 通过index切片 获取新的章节标题
            new_book_title = book_title[book_title_index + 1:]
            # print(new_book_title)
            # 去除标题含有的空格
            = + 1
            new_book_titles = "第{}章".format(i) + new_book_title.lstrip()
            new_book_url = "http://www.biqukan.com{}".format(book_url)
            #print(new_book_titles, new_book_url)
            # 一组数据设置为字典类型
            contenets = {new_book_titles: new_book_url}
            # 存放到list
            book_contents_list.append(contenets)
        except:
            # 通过异常捕捉,出现异常是没有找到"章"字符索引
            print("*****************不是正文章节节点,不予记录****************")
            print("原标题=", book_title)
            print("原链接=", new_book_url)
    return book_contents_list
"""
通过文章链接地址获取章节内容
"""
def getConnect(url):
    target = 'http://www.biqukan.com/1_1094/5403177.html'
    req = requests.get(url=url)
    req.encoding = 'gb2312'
    html = req.text
    div_bf = BeautifulSoup(html, "html5lib")
    div = div_bf.find("div"id="content")
    # 去除script
    [s.extract() for in div('script')]
    # print(div.text)
    return div.text
"""
小说内容写入到文件
"""
def saveData(filepath, text):
    with open(filepath, mode="w", encoding="UTF-8") as f:
        f.writelines(text)
        f.write('\n\n')
if __name__ == '__main__':
    book_list = getBookContents("http://www.biqukan.com/1_1094")
    for li in book_list:
            filepath = "d:\\123\\"
            connecturl = ""
            for aa in  li.keys():
                filepath = filepath+aa
                connecturl = li[aa]
            text = getConnect(connecturl)
            saveData(filepath,text)

 


如有失效,请留言告知丨转载请注明原文链接:Python爬虫抓取笔趣阁小说
点赞 (2)

您必须 登录 才能发表评论!

(1)个小伙伴在吐槽
  1. l107868382
    1024!加油
    2020-11-30 10:06