基于python的小型爬虫一:爬取书籍内容

一、环境

1.语言环境:python3.10.9
2.pycharm2022.10专业版
3.anaconda及自带的Jupyter Notebook

二、设计思路

通过调度,返回url的指定内容并进行下载。

三、详细内容

这个程序主要是基于python语言爬取bqg的一部小说的其中一个章节(本来是想爬取有道翻译做字典翻译的,结果网站进行了加密加固,需要绕开)
1.引入这次爬取内容所需要的模块
在这里插入图片描述
request模块主要是返回http请求的;BeautifulSoup模块主要是用于解析html代码并提取、返回数据的;re模块是通过正则表达式来匹配处理字符串。

2.设置参数,解析返回的网页数据
这一步需要分析网页返回的代码以及我所需要的值
获取网址
获取书名
这一段div是章节的内容

在这里插入图片描述
3.保存内容
在这里插入图片描述

四、相关代码

# 引入相关模块,增加tqdm模块,能知道下载进度
import requests
from bs4 import BeautifulSoup
from tqdm import tqdm
import re

# 确认爬取的网页
url='https://www.biqiuge8.cc/book/90141070/27078241.html'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')

#打印抓取的内容
#print(soup)
#f = open(r"e:\book.txt",'a+',encoding='utf-8')
#t1 = soup.find('a', href="/book/90141070/")
#t1 = soup.findAll('a')
# 第三步:解析网页数据
t1 = soup.find('a', href="/book/90141070/")
t2 = soup.find('h1')
content = soup.find('div', id="content", class_="showtxt").text.replace(' ','\n').replace('app2();','\n')
content = content.split('\r\n')

# 第四步:保存内容
f = open(r"e:\book1-2.txt", 'a+', encoding='utf-8')
#f.write(t1 + '\n')
f.write(t2.get_text() + '\n')

for line in tqdm(content):
    f.write(f'{line}\n')

f.close()
print('下载完成')

五、遇到的报错

BeautifulSoup导入lxml报错
原本的程序里面,soup = BeautifulSoup(response.content, ‘lxml’)
在这里插入图片描述
网上搜了下,报错的原因是因为版本语法错误,只要将lxml改成html.parser即可。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值