1. 首页
  2. Python

用PYTHON爬虫简单爬取网络小说,你会了吗?

“u003Cdivu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F33ad64ce037146d48186d9578afc2fa2″ img_width=”800″ img_height=”800″ alt=”用PYTHON爬虫简单爬取网络小说,你会了吗?” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003Eu003Cstrongu003E用PYTHON爬虫简单爬取网络小说。u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003E你们喜欢看什么小说呢?u003Cu002Fpu003Eu003Cpu003E小编这里是在17K小说网上,随便找的一本小说,名字是:《千万大奖》。u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E里面主要是三个函数:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E1、u003Cu002Fstrongu003Eget_download_url() 用于获取该小说的所有章节的URL。u003Cu002Fpu003Eu003Cpu003E分析了该小说的目录页http:u002Fu002Fwww.17k.comu002Flistu002F2819620.html的HTML源码,发现其目录是包含在Volume里的A标签合集。所以就提取出了URLS列表。u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E2、u003Cu002Fstrongu003Eget_contents(target) 用于获取小说指定章节的正文内容u003Cu002Fpu003Eu003Cpu003E分析了小说中第一章节的页面http:u002Fu002Fwww.17k.comu002Fchapteru002F2819620u002F34988369.html,发现其正文内容包含在P标签中,正文标题包含在H1标签中,经过对换行等处理,得到正文内容。传入参数是上一函数得到的URL。u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E3、u003Cu002Fstrongu003Ewriter(name, path, text) 用于将得到的正文内容和章节标题写入到千万大奖.txtu003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F0c40426a57024f069fa3780bc2212053″ img_width=”721″ img_height=”405″ alt=”用PYTHON爬虫简单爬取网络小说,你会了吗?” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003E理论上,u003Cstrongu003E该简单爬虫可以爬取该网站的任意小说。u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpreu003Efrom bs4 import BeautifulSoupu003Cbru003Eimport requests, sysu003Cbru003Etarget=’http:u002Fu002Fwww.17k.comu002Flistu002F2819620.html’u003Cbru003Eserver=’http:u002Fu002Fwww.17k.com’u003Cbru003Eurls=[]u003Cbru003Edef get_download_url():u003Cbru003E req = requests.get(url = target)u003Cbru003E html = req.textu003Cbru003E div_bf = BeautifulSoup(html,’lxml’)u003Cbru003E div = div_bf.find_all(‘dl’, class_ = ‘Volume’)u003Cbru003E a_bf = BeautifulSoup(str(div[0]),’lxml’)u003Cbru003E a = a_bf.find_all(‘a’)u003Cbru003E for each in a[1:]:u003Cbru003E urls.append(server + each.get(‘href’))u003Cbru003Edef get_contents(target):u003Cbru003E req = requests.get(url = target)u003Cbru003E html = req.textu003Cbru003E bf = BeautifulSoup(html,’lxml’)u003Cbru003E title=bf.find_all(‘div’, class_ = ‘readAreaBox content’)u003Cbru003E title_bf = BeautifulSoup(str(title[0]),’lxml’)u003Cbru003E title = title_bf.find_all(‘h1’)u003Cbru003E title=str(title[0]).replace(‘<h1>’,”)u003Cbru003E title=str(title).replace(‘<u002Fh1>’,”)u003Cbru003E title=str(title).replace(‘ ‘,”)u003Cbru003E title=str(title).replace(‘\n’,”)u003Cbru003E texts = bf.find_all(‘div’, class_ = ‘p’)u003Cbru003E texts=str(texts).replace(‘<bru002F>’,’\n’)u003Cbru003E texts=texts[:texts.index(‘本书首发来自17K小说网,第一时间看正版内容!’)]u003Cbru003E texts=str(texts).replace(‘   ’,”)u003Cbru003E return title,str(texts[len(‘[<div class=”p”>’):])u003Cbru003Edef writer(name, path, text):u003Cbru003E write_flag = Trueu003Cbru003E with open(path, ‘a’, encoding=’utf-8′) as f:u003Cbru003E f.write(name + ‘\n’)u003Cbru003E f.writelines(text)u003Cbru003E f.write(‘\n’)u003Cbru003E#title,content=get_contents(target)u003Cbru003E#print(title,content)u003Cbru003E#writer(title,title+”.txt”,content)u003Cbru003Eget_download_url()u003Cbru003E#print(urls)u003Cbru003Ei=1u003Cbru003Efor url in urls:u003Cbru003E title,content=get_contents(url)u003Cbru003E writer(title,”千万大奖.txt”,content)u003Cbru003E print(str(int(iu002Flen(urls)*100))+”%”)u003Cbru003E i+=1kuu003Cbru003Eu003Cu002Fpreu003Eu003Cpu003E快去下载你想看的小说吧~u003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F6fdd54b28f8c4f0ea29926bc6d8f17d1″ img_width=”900″ img_height=”501″ alt=”用PYTHON爬虫简单爬取网络小说,你会了吗?” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cu002Fdivu003E”

原文始发于:用PYTHON爬虫简单爬取网络小说,你会了吗?

主题测试文章,只做测试使用。发布者:逗乐男神i,转转请注明出处:http://www.cxybcw.com/12874.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code