当前位置:   article > 正文

用PYTHON爬小说(txt格式)_python爬 ::text

python爬 ::text

忘了在哪抄的源码了,不过确实很好用,要是爬下来有夹字符串什么的,自行修改re匹配哈

这个小爬虫用三个模块,requests,parsel,还有re模块**

按照惯例,先导入模块:
import requests
import parsel
import re

然后就是伪装浏览器标识,网址之类的咯,这里我偷懒,直接定位到网站上这本小说的网址
url = “http://www.xpaoshuba.com/Partlist/61563/”
我个人比较爱看科幻类的小说,这里就随便拿本科幻小说举例

定义好了网址之后,接下来就是开始分析网址了:
response = requests.get(url)
responses = response.text
#print(responses)
写的时候分析网页内容用的
selector = parsel.Selector(responses)
novel_name = selector.css(‘#info h1::text’).get() #小说名
print(novel_name)
这里是分析网页的标签,小说的名字在h1标签内,所以直接定义标签,拿到小说的名字,我这习惯很差,顺手补一个小说名在运行框里的显示,方便自己看进度;
在这里插入图片描述
接下来就是去找小说章节名和单章节链接的标签了:
href = selector.css(‘#list dd a::attr(href)’).getall() #小说章节
这里可以看到,章节名和链接都可以直接用dd标签来找,我就偷一下懒哈,只抓取链接,因为章节名在后面的单张小说里面是有的;在这里插入图片描述
抓取到的链接,我是喜欢用循环的方式来给它存起来,然后一个循环完成了一本书也抓取完了:
for link in href:
上面抓取到了章节链接,但是链接需要拼接才能用,这里咱们省点事,自己手动拼接吧:
link_url = ‘http://www.xpaoshuba.com’ + link
这里链接拼接好了,接下来还是老样子,请求一下链接,然后分析返回的内容:
response_1 = requests.get(link_url)
responses_1 = response_1.text
selecter_1 = parsel.Selector(responses_1)
分析内容了哈,这里主要就抓两个东西,一个是单张的内容,一个是标题:
title_name = selecter_1.css(‘.zhangjieming h1::text’).get() #小说章节
content_list = selecter_1.css(‘#content p::text’).getall() #小说内容
变量名啥的,自己怎么顺手怎么敲吧,但是这里要注意啊,小说的内容要进行str处理,再不然写不进文本档里,就是你的txt保存不了:
ck=str(content_list)
bk=ck.replace(“', '”,‘\n’)
去一下里面夹带的无意义字符;

接下来就是最终环节了,把爬下来的内容按小说章节顺序写到一个文本档里:
try:
with open(‘12.txt’, ‘a’) as f:
f.write(title_name)
f.write(‘\n’)
print(title_name)
f.write(bk)
except:
print(link_url + “出错了!”)
pass

这里用了try…excepet,是防止写入的时候报错,然后这个爬虫就崩了,单张写入报错,那就去盗版网址手机看一章嘛,哈哈哈哈哈哈。然后就是每一章的章节名后面,要加一个换行符,再不然没法看,所以这个’/n’的作用是换行,其他就无了。

下附完整代码:

import requests
import parsel
import re
url = "http://www.xpaoshuba.com/Partlist/61563/"
response = requests.get(url)
responses = response.text
#print(responses)
selector = parsel.Selector(responses)
novel_name = selector.css('#info h1::text').get() #小说名
print(novel_name)
href = selector.css('#list dd a::attr(href)').getall() #小说章节
#print(href)
for link in href:
    link_url = 'http://www.xpaoshuba.com' + link
    response_1 = requests.get(link_url)
    responses_1 = response_1.text
    selecter_1 = parsel.Selector(responses_1)
    title_name = selecter_1.css('.zhangjieming h1::text').get() #小说章节
    content_list = selecter_1.css('#content p::text').getall() #小说内容
    ck=str(content_list)
    bk=ck.replace("', '",'\n')
    #print(bk)
    try:
        with open('12.txt', 'a') as f:
            f.write(title_name)
            f.write('\n')
            print(title_name)
            f.write(bk)
            #print(ck)
    except:
        print(link_url + "出错了!")
    pass
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

爬小说还是简单的,甚至可以自己租个服务器弄个盗版网站,不过感觉意义不大并且容易出事,仅供娱乐,请勿用于牟利!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/792288
推荐阅读
相关标签
  

闽ICP备14008679号