爬虫爬取《全职法师》并保存到本地
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=""" (.+?)<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 爬取租房网站信息并保存本地