python爬取小说代码_python-爬取单本小说代码

这里用到Pycharm.Professional 版本运行

python3.7

用到的库:requestst,xlml

这次爬小说用到的是简单单线程爬取技术,用request库通过给定的url地址获取网页内容

首先,逐章爬取小说,要分开章节标题和章节里正文内容方便整合出来的小说可以按章阅读。

然后,因为爬取的是小网站没有反爬虫机制就不用伪装头部(下面代码是伪装头部的代码,可以不写)

#模拟请求头

#此处代码伪装chrome浏览器模拟人的行为浏览网页

headers ={"Accept": "application/json, text/javascript, */*; q=0.01","X-Requested-With": "XMLHttpRequest","User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36","Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"}

运行时遇到数组溢出的提示,在get_text(url)

with open(path + title[0], 'w', encoding='utf-8') as f:

我的显示这两行有错误:

IndexError: list index out of range

卡住,我不知道为什么找遍网站都说没有章节名称,建议直接换个网站爬

importrequestsfrom lxml importetree#获取小说想要爬取的urls

urls = ['https://www.bookbaob.com/views/201011/18/id_XMTM3MTg5_{}.html'.format(i) for i in range(1, 55)]#设置保存小说路径

path = r'D:\python\pythonexercise\xiaoshuo\'

#获取小说内容

defget_text(url):

r=requests.get(url)

r.encoding= 'utf-8'selector=etree.HTML(r.text)#获取文章标题

title = selector.xpath('//*[@id="amain"]/dl/dd[1]/h1/text()')#获取小说正文内容

text = selector.xpath('//*[@id="contents"]/text()')

with open(path+ title[0], 'w', encoding='utf-8') as f:for i intext:

f.write(i)if __name__ == "__main__":for url inurls:

get_text(url)

1771989-20201008211301594-1665578124.png

小说成功爬取下来了,之后用窗口命令整合文件即可

首先新建一个记事本,在其中写入:type *.txt>>all.txt。然后保存为合并.bat(也就是批处理文件)。放到你的txt所在的文件夹内,双击就会出现合并好的all.txt文件

完成爬取,可以愉快的看小说了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值