189 8069 5689

用PYTHON爬虫简单爬取网络小说的示例-创新互联

创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!

创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站制作、网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的察哈尔右翼前网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

这篇文章主要介绍用PYTHON爬虫简单爬取网络小说的示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

用PYTHON爬虫简单爬取网络小说。

这里是17K小说网上,随便找了一本小说,名字是《千万大奖》。

里面主要是三个函数:

1、get_download_url() 用于获取该小说的所有章节的URL。

分析了该小说的目录页http://www.17k.com/list/2819620.html的HTML源码,发现其目录是包含在Volume里的A标签合集。所以就提取出了URLS列表。

2、get_contents(target) 用于获取小说指定章节的正文内容

分析了小说中第一章节的页面http://www.17k.com/chapter/2819620/34988369.html,发现其正文内容包含在P标签中,正文标题包含在H1标签中,经过对换行等处理,得到正文内容。传入参数是上一函数得到的URL。

3、writer(name, path, text) 用于将得到的正文内容和章节标题写入到千万大奖.txt

理论上,该简单爬虫可以爬取该网站的任意小说。

from bs4 import BeautifulSoup
import requests, sys
'''
遇到不懂的问题?Python学习交流群:821460695满足你的需求,资料都已经上传群文件,可以自行下载!
'''
target='http://www.17k.com/list/2819620.html'
server='http://www.17k.com'
urls=[]

def get_download_url():
    req = requests.get(url = target)
    html = req.text
    div_bf = BeautifulSoup(html,'lxml')
    div = div_bf.find_all('dl', class_ = 'Volume')
    a_bf = BeautifulSoup(str(div[0]),'lxml')
    a = a_bf.find_all('a')
    for each in a[1:]:
        urls.append(server + each.get('href'))


def get_contents(target):
        req = requests.get(url = target)
        html = req.text
        bf = BeautifulSoup(html,'lxml')
        title=bf.find_all('div', class_ = 'readAreaBox content')
        title_bf = BeautifulSoup(str(title[0]),'lxml')
        title = title_bf.find_all('h2')
        title=str(title[0]).replace('

','')         title=str(title).replace('

','')         title=str(title).replace(' ','')         title=str(title).replace('\n','')         texts = bf.find_all('div', class_ = 'p')         texts=str(texts).replace('
','\n')         texts=texts[:texts.index('本书首发来自17K小说网,第一时间看正版内容!')]         texts=str(texts).replace('                                          ','')         return title,str(texts[len('['):]) def writer(name, path, text):         write_flag = True         with open(path, 'a', encoding='utf-8') as f:             f.write(name + '\n')             f.writelines(text)             f.write('\n') #title,content=get_contents(target) #print(title,content) #writer(title,title+".txt",content) get_download_url() #print(urls) i=1 for url in urls:     title,content=get_contents(url)     writer(title,"千万大奖.txt",content)     print(str(int(i/len(urls)*100))+"%")     i+=1

以上是用PYTHON爬虫简单爬取网络小说的示例的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联-成都网站建设公司行业资讯频道!


文章标题:用PYTHON爬虫简单爬取网络小说的示例-创新互联
本文地址:http://jkwzsj.com/article/cshoij.html

其他资讯