首页 » 软件开发 » Python学习——网络爬虫-下载小说(文本方法数据爬虫元素)

Python学习——网络爬虫-下载小说(文本方法数据爬虫元素)

少女玫瑰心 2024-07-24 19:32:43 0

扫一扫用手机浏览

文章目录 [+]

自动爬取某网站,并且将该网站的文本数据存储到本地。

基本实现步骤:

1)自动爬取网站,获得网站数据;

Python学习——网络爬虫-下载小说(文本方法数据爬虫元素) 软件开发
(图片来自网络侵删)

2)数据存储到本地。

遇到问题及解决办法:

1)自动爬取,暂时水平不够高,采用的伪爬取方法即找到网页网址的规律;

2)关于文本的处理,输出成想要的格式

正题方法:

1)网页分为静态网页(存粹的html格式的)、动态网页(使用AJAX),即动态加载网页的数据不一定出现按外html中等。

本文爬取的网页是动态网页,采用的方法是浏览器渲染引擎(渲染引擎的职责就是渲染,即在浏览器窗口中显示所请求的内容。
这是每一个浏览器的核心部分,所以渲染引擎也称为浏览器内核)。
因而需要安装selenium库,

FireFox浏览器,下载getodriver。
selenium库使用方法:https://blog.csdn.net/weixin_36279318/article/details/79475388

访问网址url:https://www.biqukan.com/2_2757/1107517.html,鬼吹灯的链接。

需要爬取内容:标题、文本。

标题的元素特征:div,class = “content”或h1

文本元素特征:div,id = “content” class = “showtxt”

2)通过BeautifulSoup,安装模块后,获得soup对象,按照上面的元素属性,调用方法find_all()或find可以所以符合上述元素特征的元素列表。
(https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/#find-all)

3)根据BeautifulSoup手册上的,get_text()方法获得tag标签的文本内容,因为获取的文本内容存在空格,采用的笨方法

用strip()方法去除空格,返回列表,并用字符串+方法将列表的字符串拼接,完成文本提取工作

4)下面按照顺序依次爬取所有章节文本数据。

源代码如下:

from selenium import webdriver

from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

from bs4 import BeautifulSoup

import time

import sys

import re

caps = webdriver.DesiredCapabilities().FIREFOX

caps[\"marionette\"] = False

binary = FirefoxBinary(r'D:\Anaconda3\Scripts\firefox.exe')

driver = webdriver.Firefox(firefox_binary = binary,capabilities=caps)

Debug =1

MaxTextNum = 100

def singlePageGet(driver,url):

'''

函数说明:单页提取数据

:return:单页标题、文本

'''

driver.get(url)

webData = driver.page_source

soup = BeautifulSoup(webData,'lxml')

titlesList = (soup.find_all('h1'))

textsList = soup.find_all('div',class_ = \"showtxt\")

if textsList:

#print(titlesList,textsList)

titles = titlesList[0].get_text().split()

texts = textsList[0].get_text().strip().split()

finalText = ''

finalTitle = ''

for text in texts:

finalText = finalText + text

for title in titles:

finalTitle = finalTitle + title

return finalTitle,finalText

else :

return

def writeToFile(title,content):

fileName = '鬼吹灯.txt'

with open(fileName,'a+',encoding='utf-8') as f:

f.write(title)

f.write('\n')

f.write(content)

f.write('\n\n')

#8035

urlsAccess = ['https://www.biqukan.com/2_2757/{}.html'.format(value) for value in range(1108307,1108346,1)]

#1108346 117517

numing = 0

for url in urlsAccess:

if singlePageGet(driver,url):

titles,texts = singlePageGet(driver,url)

if titles:

writeToFile(titles,texts)

time.sleep(2)

numing = numing + 1

print('下载进度:%4.2f'%(numing/len(urlsAccess)))

else :

numing = numing + 1

print('下载完成')

Python交流,提供技术服务,共同讨论,欢迎各路萌新和大神加入,群号;601020339

标签:

相关文章

语言中的借用,文化交融的桥梁

自古以来,人类社会的交流与发展离不开语言的传播。在漫长的历史长河中,各民族、各地区之间的文化相互碰撞、交融,产生了许多独特的语言现...

软件开发 2025-01-01 阅读1 评论0

机顶盒协议,守护数字生活的新卫士

随着科技的飞速发展,数字家庭逐渐走进千家万户。在这个时代,机顶盒成为了连接我们与丰富多彩的数字世界的重要桥梁。而机顶盒协议,作为保...

软件开发 2025-01-01 阅读1 评论0

语言基础在现代社会的重要性及方法步骤

语言是人类沟通的桥梁,是社会发展的基础。语言基础作为语言学习的基石,对于个人、社会乃至国家的发展具有重要意义。本文将从语言基础在现...

软件开发 2025-01-01 阅读2 评论0

粤语电影,传承文化,点亮时代之光

粤语电影,作为中国电影产业的一朵奇葩,以其独特的地域特色、丰富的文化内涵和鲜明的艺术风格,赢得了广大观众的喜爱。本文将从粤语电影的...

软件开发 2025-01-01 阅读1 评论0

苹果游戏语言,塑造未来娱乐体验的基石

随着科技的飞速发展,游戏产业逐渐成为全球娱乐市场的重要支柱。在我国,游戏产业更是蓬勃发展,吸引了无数玩家和投资者的目光。而在这其中...

软件开发 2025-01-01 阅读1 评论0