当前位置:   article > 正文

爬虫实例:爬取笔趣阁小说(二)_小说爬虫网站

小说爬虫网站

方法二

import requests
from lxml import etree

url = 'https://www.xswang.vip/book/59716/'
res = requests.get(url)
list_page = etree.HTML(res.text)

txt_name =list_page.xpath("//h1/text()")[0].strip()
file_name = txt_name + '.txt'

list_a = list_page.xpath("//dd/a//@href")[12:]
list_a = ['https://www.xswang.vip' + i for i in list_a]

for i in list_a:
    res = requests.get(i)
    data_page = etree.HTML(res.text)
    data_title = data_page.xpath("//*[@id='main']/div/div/div[2]/h1/text()")[0]
    data_list = data_page.xpath("//*[@id='content']/p/text()")
    data = "\n".join(data_list)
    this_chapter = f"\n{data_title}\n{data}"

    with open(file_name, 'a', encoding='utf-8') as f:
        f.write(this_chapter)
        
    print(f"{data_title} 下载完成")
  • 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

以上为代码全图

代码详解

1.导入所需的库

import requests
from lxml import etree
  • 1
  • 2

2.发出GET请求并对HTML进行解析

url = 'https://www.xswang.vip/book/59716/'
res = requests.get(url)
list_page = etree.HTML(res.text)
  • 1
  • 2
  • 3

3.定位书名

txt_name =list_page.xpath("//h1/text()")[0].strip()
  • 1

strip()防止出现空格

4.定位全书不同的分页地址

list_a = list_page.xpath("//dd/a//@href")
  • 1

Xpath中//和/的区别


//:是用来选择XML或者HTML中所有的节点,它后面可以跟任何节点,不用考虑层级关系,例如本篇中//dd表示选择文档中所有的dd元素
/:是用来选择当前节点的子节点,例如//dd/a表示为选择dd元素中所有的直接子集a元素

5.对不同的章节链接进行遍历

list_a = ['https://www.xswang.vip' + i for i in list_a]
  • 1

6.同上定位小说标题内容进行拼接

    data_title = data_page.xpath("//*[@id='main']/div/div/div[2]/h1/text()")[0]
    data_list = data_page.xpath("//*[@id='content']/p/text()")
    data = "\n".join(data_list)
    this_chapter = f"\n{data_title}\n{data}"
  • 1
  • 2
  • 3
  • 4

定位获取把标题和内容,并将获取到的内容与标题拼接在一起

7.保存小说

file_name = txt_name + '.txt'

    with open(file_name, 'a', encoding='utf-8') as f:
        f.write(this_chapter)
  • 1
  • 2
  • 3
  • 4

用追加输入的方式将每次获取到的标题和内容保存到以file_name命名的txt文件中(file_name是获取到的书名)

总结

这种方式相比第一种方式更加快捷,不需要去找地址结尾数字的规律来遍历,只需要在主网页上定位各个章节的链接元素,依次遍历就可以将整本书给爬取出来。

由于方法一已经详细解释了各个代码的作用,因此方法二就没有过多赘述,望多多包涵!

爬虫

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/825135
推荐阅读
相关标签
  

闽ICP备14008679号