Datehoer的博客
我本将心向明月,奈何明月照沟渠
Datehoer的博客

当前位置:主页 > 技术分享 > python 爬取小说进阶

python 爬取小说进阶

浏览: 作者:Datehoer 发布日期:2021-01-20 14:17:20 来源: 原创
这一篇是上一篇关于python xpath爬取小说的进阶版,不过其实说是进阶,还是那些东西,只不过加了一个范围获取,指前只能是输入网址,而且必须是小说的正页内容才行,现在加了一个只需要列表页就能获取该列表的所有小说了。而且通过python,实现了只需要输入列表页的长度,就能获取所有的文章。

importrequests_html

defmakestr(b):

num=str(b)

returnnum

session=requests_html.HTMLSession()

url="https"

 

biaoti_xpath='/html/body/div[1]/div/div[1]/main/article/div/header/h1/text()'

wenben_xpath='/html/body/div[1]/div/div[1]/main/article/div/div/p/text()'

lianjiexpath_list=[]

lianjie_list=[]

links=[]

urllist=["https"]

foriinrange(2,4):

new_url=url+'/page/'+str(i)

urllist.append(new_url)

print(urllist)

foriinrange(len(urllist)):

lianjie=urllist.pop()

r=session.get(lianjie)

forbinrange(1,13):

num=makestr(b)

lianjie_xpath='/html/body/div[1]/div/div[1]/main/article['+num+']/div/header/h2/a/@href'

#lianjiexpath_list.append(lianjie_xpath)

links.append(r.html.xpath(lianjie_xpath))

#######

#foriinrange(len(lianjiexpath_list)):#将链接储存在一个列表里

#lianjie_xpath=lianjiexpath_list.pop()

##print(r.html.xpath(lianjie_xpath).pop())

#

#lianjie_list.append(r.html.xpath(lianjie_xpath))

#print(lianjie_list)

#######

delb

forlinknuminrange(len(links)):

link=links.pop()

link=link.pop()

r=session.get(link)

res_bt=r.html.xpath(biaoti_xpath)

res=r.html.xpath(wenben_xpath)

 

forainrange(len(res)):

zifu_str=res.pop(0)

ifa==0:

bt=res_bt.pop()

wenjian_name=bt+'.txt'

zifu_str=bt+'\n'+zifu_str

withopen(wenjian_name,'a',encoding='utf-8')asfile_object:

file_object.write(zifu_str+'\n')


python 爬取小说进阶

比较难的其实是那个,一开始获取链接错了,我把链接储存起来然后pop出来的是xpath。。。。

然后后面是一个很蠢的问题。。'str' object is not callable

一直报错这个,然后我改了一堆一堆的,发现都没问题,随便一看发现我后面的文件写入,变量名为str。。。。。

在接下来就毫无难度了


不过我这个是只能爬取那些短篇小说的爬虫,而非那种好多章的,不过只要在一个列表页就行了,但是由于一些特殊原因,所以不准备把小说网址放出来,其实明白的人都懂,哈哈。

如果有什么疑问,可以在评论区留言,我会在看到的第一时间进行回复的。

 


版权:本文由Datehoer原创,著作权归作者所有。商业转载请联系作者获得授权,非商业转载请保留以上作者信息和原文链接本文链接:https://zjzdmc.top/jsfx/129.html。

文章推荐

热门标签

返回顶部
下面为相关推荐
说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!