码迷,mamicode.com
首页 > 其他好文 > 详细

爬虫爬取《全职法师》并保存到本地

时间:2019-10-09 21:07:40      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:import   数据   显示   class   换行   遇到   解决   文件   本地   

同学想看全职法师,但是又不想看广告 让我帮他写一个爬虫~~

首先找一个看起来很好爬的网站:https://www.50zw.co/

找到全职法师,遇到的第一个问题就是编码的问题,明明网站上显示是utf-8,但是爬下来就是乱码,hin奇怪

折腾许久,终于找到解决方法:

    r=requests.get(url) 
    r.encoding=gb2312#解决中文不能正常显示

现在终于可以愉快的爬虫了

这里还有一个问题,就是爬下来的数据将每一段的换行符认成了乱码:

    
我看它网站的结构相当清晰,那就直接用这个当正则好了~~
然后是页面跳转,这个也很简单,我发现它最后一章的“下一章”是跳转到小说的首页上的,所以直接加一个while循环就好了~~
最后是写到文件里,这里直接用with open打开,然后把每一个正则出来的元素写进去就好了
直接上代码吧:
import re
import requests
url="https://www.50zw.co/book_23635/10153020.html"
while url!="https://www.50zw.co/book_23635/":
    h="<h1>(.+?)</h1>"
    r=requests.get(url) 
    r.encoding=gb2312#解决中文不能正常显示
    #print(r.text)
    hh=re.findall(h,r.text)
    print(hh[0])
    maintxt="""&nbsp;&nbsp;&nbsp;&nbsp;(.+?)<br />"""
    nexturl="""<a href="(.+?)" class=‘next pager_next‘>下一章</a>"""
    nurl=re.findall(nexturl,r.text)
    texts=re.findall(maintxt,r.text,re.DOTALL)
    url=nurl[0]
    #print(texts)
    with open("全职法师.txt",a,encoding=utf-8) as f:
        f.write(hh[0]+\n)
        for i in texts:
            f.write("    "+i+\n)
        print(hh[0],"success!")

 

爬虫爬取《全职法师》并保存到本地

标签:import   数据   显示   class   换行   遇到   解决   文件   本地   

原文地址:https://www.cnblogs.com/dyhaohaoxuexi/p/11644319.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!