介绍
这篇文章主要介绍用PYTHON爬虫简单爬取网络小说的示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
用PYTHON爬虫简单爬取网络小说。
这里是17 k小说网上,随便找了一本小说,名字是《千万大奖》。
里面主要是三个函数:
1, get_download_url()用于获取该小说的所有章节的URL。
分析了该小说的目录页http://www.17k.com/list/2819620.html的HTML源码,发现其目录是包含在卷里的一个标签合集,所以就提取出了URL列表。
2, get_contents(目标)用于获取小说指定章节的正文内容
分析了小说中第一章节的页面http://www.17k.com/chapter/2819620/34988369.html,发现其正文内容包含在标页签中,正文标题包含在H1标签中,经过对换行等处理,得到正文内容。传入参数是上一函数得到的URL。
3,作家(名称、路径、文本)用于将得到的正文内容和章节标题写入到千万大奖。txt
理论上,该简单爬虫可以爬取该网站的任意小说。
得到bs4 import BeautifulSoup import 请求,系统 & # 39;& # 39;& # 39; 遇到不懂的问题? Python学习交流群:821460695满足你的需求,资料都已经上传群文件,可以自行下载! & # 39;& # 39;& # 39; 目标=& # 39;http://www.17k.com/list/2819620.html& # 39; 服务器=& # 39;http://www.17k.com& # 39; url=[] def get_download_url (): ,,,req =, requests.get (=url 目标) ,,,html =req.text ,,,div_bf =, BeautifulSoup (html、& # 39; lxml # 39;) ,,,div =, div_bf.find_all (& # 39; dl # 39;,, class_ =, & # 39;卷# 39;) ,,,a_bf =, BeautifulSoup (str (div [0]), & # 39; lxml # 39;) ,,,a =, a_bf.find_all(& # 39;一个# 39;) ,,,for each 拷贝(1:): ,,,,,,,urls.append(时间+ server each.get (& # 39; href # 39;)) def get_contents(目标): ,,,,,,,req =, requests.get (=url 目标) ,,,,,,,html =req.text ,,,,,,,bf =, BeautifulSoup (html、& # 39; lxml # 39;) ,,,,,,,title=bf.find_all (& # 39; div # 39;,, class_ =, & # 39; readAreaBox 内容# 39;) ,,,,,,,title_bf =, BeautifulSoup (str(标题[0]),& # 39;lxml # 39;) ,,,,,,,title =, title_bf.find_all (& # 39; h2 # 39;) ,,,,,,,title=str(标题[0]).replace (& # 39; & lt; h2> & # 39;, & # 39; & # 39;) ,,,,,,,title=str(标题).replace (& # 39; & lt;/h2> & # 39;, & # 39; & # 39;) ,,,,,,,title=str(标题).replace (& # 39;, & # 39;, & # 39; & # 39;) ,,,,,,,title=str(标题).replace (& # 39; \ n # 39; & # 39; & # 39;) ,,,,,,,texts =, bf.find_all (& # 39; div # 39;,, class_ =, & # 39; p # 39;) ,,,,,,,短信=str(文本).replace (& # 39; & lt; br/祝辞& # 39;,& # 39;\ n # 39;) ,,,,,,,=文字[:texts.index(& # 39;本书首发来自17 k小说网,第一时间看正版内容! & # 39;)) ,,,,,,,短信=str(文本).replace (& # 39;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,& # 39;& # 39;& # 39;) ,,,,,,,return 标题、str(文本(len (& # 39; [& lt; div 类=皃"祝辞& # 39;):]) def 作家(名称,路径,文本): ,,,,,,,write_flag =,真的 ,,,,,,,with 开放(路径,& # 39;一个# 39;,,编码=& # 39;utf - 8 # 39;), as f: ,,,,,,,,,,,f.write(时间+ name & # 39; \ n # 39;) ,,,,,,,,,,,f.writelines(文本) ,,,,,,,,,,,f.write (& # 39; \ n # 39;) #标题、内容=get_contents(目标) #打印(标题、内容) #作家(标题,标题+“.txt"、内容) get_download_url () #打印(url) i=1 for url url拷贝: ,,,标题,内容=get_contents (url) ,,,作家(标题,“千万大奖.txt",内容) ,,,print (str (int len (url) * 100 (i/)) +“%”) ,,,我+=1
以上是用PYTHON爬虫简单爬取网络小说的示例的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!