718718 发表于 2021-4-24 15:27

笔趣阁全站小说爬取

本帖最后由 718718 于 2021-4-24 15:28 编辑

笔趣阁全站小说爬取

1.使用了五个模块

mport time
import requests
import os
import random
from lxml import etree
源代码:


#https://www.biquge.info/wanjiexiaoshuo/   笔趣阁小说全本爬虫
import time
import requests
import os
import random
from lxml import etree

noName = ['#','/','\\',':','*','?','\"','<','>','|']   #\/:*?"<>|
def strZ(_str): #将特殊字符转换为空格
    ret = ''
    for _ in _str:
      if _ in noName:
            ret += " "
      else:
            ret += _
    return ret
def main():
    filePath = './保存小说'
    if not os.path.exists(filePath):
      os.mkdir(filePath)
    header = {
      "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.128 Safari/537.36 Edg/89.0.774.77"
    }
    url = 'https://www.biquge.info/wanjiexiaoshuo/'
    page = requests.get(url=url, headers=header)
    page.encoding = 'utf-8'
    tree = etree.HTML(page.text)
    page_last = tree.xpath('//div[@class="pagelink"]/a[@class="last"]/text()')
    for page_i in range(1, int(page_last)):
      url = 'https://www.biquge.info/wanjiexiaoshuo/' + str(page_i)
      page = requests.get(url=url, headers=header)
      page.encoding = 'utf-8'
      tree = etree.HTML(page.text)
      li_list = tree.xpath('//div[@class="novelslistss"]/ul/li')
      for li in li_list:
            page_url = li.xpath('./span[@class="s2"]/a/@href')# 目录链接
            page_title = strZ(li.xpath('./span[@class="s2"]/a/text()'))
            page = requests.get(url=page_url, headers=header)
            page.encoding = 'utf-8'
            page_tree = etree.HTML(page.text)
            _filePath = filePath + '/' + page_title
            if not os.path.exists(_filePath):
                os.mkdir(_filePath)
            page_dl_list = page_tree.xpath('//div[@class="box_con"]/div[@id="list"]')
            page_dl_list = page_tree.xpath('.//dl/dd')
            for _ in page_dl_list:
                _page_url = page_url + _.xpath('./a/@href')
                _page_title = _filePath + '/' + strZ(_.xpath('./a/@title')) + '.txt'
                _page = requests.get(_page_url, headers=header)
                _page.encoding = 'utf-8'
                _tree = etree.HTML(_page.text)
                _page_content = _tree.xpath('//div[@id="content"]/text()')
                fileContent = ''
                for _ in _page_content:
                  fileContent += _ + '\n'
                with open(_page_title, 'w', encoding='utf-8') as fp:
                  fp.write(fileContent)
                  print('%s成功下载到本地' % (_page_title))
                time.sleep(random.uniform(0.05, 0.2))
if __name__ == '__main__':
    main()

skrkjw69 发表于 2021-4-24 15:39


感谢分享,谢谢提供分享

626066554 发表于 2021-4-24 15:42

谢谢大牛

yy7759 发表于 2021-4-24 15:43

多谢楼主分享

lianxyq 发表于 2021-4-24 15:58

谢谢@Thanks!

a1033510102 发表于 2021-4-24 16:06

谢谢大佬分享

dddmt 发表于 2021-4-24 16:27


感谢楼主的分享

信任 发表于 2021-4-24 20:43


支持楼主,谢谢分享。

弹簧人 发表于 2021-4-25 11:17

谢谢分享
页: [1]
查看完整版本: 笔趣阁全站小说爬取