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

Posted dyhaohaoxuexi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬虫爬取《全职法师》并保存到本地相关的知识,希望对你有一定的参考价值。

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

首先找一个看起来很好爬的网站: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]+
)
        for i in texts:
            f.write("    "+i+
)
        print(hh[0],"success!")

 

以上是关于爬虫爬取《全职法师》并保存到本地的主要内容,如果未能解决你的问题,请参考以下文章

scrapy爬虫系列之三--爬取图片保存到本地及日志的基本用法

爬虫系列3:Requests+Xpath 爬取租房网站信息并保存本地

使用Scrapy爬虫框架简单爬取图片并保存本地(妹子图)

Python爬虫爬取博客园并保存

Python使用Scrapy爬虫框架全站爬取图片并保存本地(妹子图)

爬虫——使用多进程爬取视频数据