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

转载 dyhaohaoxuexi 2019/10/9 21:18:24

同学想看全职法师,但是又不想看广告让我帮他写一个爬虫~~首先找一个看起来很好爬的网站:z找到全职法师,遇到的第一个问题就是编码的问题,明明网站上显示是,但是爬下来就是乱码,奇怪折腾许久,终于找到解决方法:现在终于可以愉快的爬虫了这里还

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

首先找一个看起来很好爬的网站: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!")

 

上一篇:Git常用命令整理

下一篇:58同城AES签名接口逆向分析

赞(0)

共有 条评论 网友评论

验证码: 看不清楚?
    扫一扫关注最新编程教程