网页小说抓取 ios(上班想爬取笔阁小说?找个目的学习python分享)

优采云 发布时间: 2022-01-11 01:08

  网页小说抓取 ios(上班想爬取笔阁小说?找个目的学习python分享)

  想在工作中钓鱼?为了找鱼方便,今天写了一个爬毕格小说的程序。嗯,其实我是在找一个学习python的目的,分享一下。

  1. 先导入相关模块

  import os<br />

import requests<br />

from bs4 import BeautifulSoup<br />

  2. 向 网站 发送请求并获取 网站 数据

  

  网站链接的最后一个数字是一本书的id值,一个数字对应一本小说。我们以id为1的小说为例。

  进入网站后发现有章节列表,那么我们先完成小说列表名称的爬取

  # 声明请求头<br />

headers = {<br />

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36'<br />

}

# 创建保存小说文本的文件夹<br />

if not os.path.exists('./小说'):<br />

os.mkdir('./小说/')

# 访问网站并获取页面数据<br />

response = requests.get('http://www.biquw.com/book/1/').text<br />

print(response)<br />

  【外链图片传输失败,源站可能有防盗链机制,建议保存图片直接上传(img-Uu2ddyQB-32)(.\素材图片\中文显示乱码.png)]

  写过这个地方的学生可能发现了一个问题。正常去访问网站,为什么返回的数据是乱码?

  这是因为页面html的编码格式和我们用python访问和获取数据的数据的解码格式不一致。python默认的解码方式是utf-8,但是页面编码可能是GBK或者GB2312等,所以我们需要让python代码所在页面的解码方式自动变化

  #### 重新编写访问代码<br />

```python<br />

response = requests.get('http://www.biquw.com/book/1/')<br />

response.encoding = response.apparent_encoding<br />

print(response.text)

'''<br />

这种方式返回的中文数据才是正确的<br />

'''<br />

  3. 获取页面数据后提取数据

  通过正确的解码方式得到页面数据后,需要完成静态页面分析。我们需要从整个网页数据(章节列表数据)中获取我们想要的数据

  首先打开浏览器,按F12调出开发者工具。选择元素选择器。在页面中选择我们想要的数据,定位到数据所在的元素标签。

  

  '''<br />

根据上图所示,数据是保存在a标签当中的。a的父标签为li,li的父标签为ul标签,ul标签之上为div标签。所以如果想要获取整个页面的小说章节数据,那么需要先获取div标签。并且div标签中包含了class属性,我们可以通过class属性获取指定的div标签,详情看代码~<br />

'''<br />

# lxml: html解析库 将html代码转成python对象,python可以对html代码进行控制<br />

soup = BeautifulSoup(response.text, 'lxml')<br />

book_list = soup.find('div', class_='book_list').find_all('a')<br />

# soup对象获取批量数据后返回的是一个列表,我们可以对列表进行迭代提取<br />

for book in book_list:<br />

book_name = book.text<br />

# 获取到列表数据之后,需要获取文章详情页的链接,链接在a标签的href属性中<br />

book_url = book['href']<br />

  4.获取小说详情页链接后,再次访问详情页,获取文章的数据

  book_info_html = requests.get('http://www.biquw.com/book/1/' + book_url, headers=headers)<br />

book_info_html.encoding = book_info_html.apparent_encoding<br />

soup = BeautifulSoup(book_info_html.text, 'lxml')<br />

  5. 对小说详情页进行静态页面分析

  

  info = soup.find('div', id='htmlContent')<br />

print(info.text)<br />

  6. 资料下载

  with open('./小说/' + book_name + '.txt', 'a', encoding='utf-8') as f:<br />

f.write(info.text)<br />

  最后再来看看代码效果~

  

  抓取的数据

  

  

  

  文章本文到此结束,只是想感谢一些阅读我的人文章。

  退休后,我一直在学习如何写 文章。说实话,每次在后台看到一些读者的回复,我都觉得很欣慰,所以想把自己采集的一些编程干货贡献给大家,回馈每一位读者,希望对大家有所帮助。

  干货主要有:

  ①2000多本Python电子书(主流经典书籍应该都有)

  ②Python标准库资料(最全中文版)

  ③项目源码(四十或五十个有趣经典的培训项目及源码)

  ④Python基础入门视频等(适合小白学习)

  *如果可以使用,可以直接拿走。你可以在我的QQ技术交流群里自己带走(无广告),群号是980758007。*

  

  python爬取笔曲格小说,有趣实用更多相关文章bs4爬取笔曲格小说

  参考链接:Module:requests,bs4,queue,sys,time Step:Give URL--&gt;Access U...

  Jsoup-基于Java的Web爬虫

  注意力!仅供学习交流使用,请勿在歪歪扭扭的地方使用!技术只是工具!关键在于使用!今天,我接触到一个有趣的框架,它充当网络爬虫。他可以像 JS 一样提取网页的内容,体验 Jsoup 服务器生成会话(唯一)。会话ID ...

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线