首页 编程教程正文

用python爬取小说网站的小说

piaodoo 编程教程 2020-02-22 22:15:55 1373 0 python教程

本文来源吾爱破解论坛

原本是做之前的项目的,但是一拖再拖到今天都没动手,然后就做了这个,简单看看吧 。

[Python] 纯文本查看 复制代码

import requests
from lxml import etree
import time
import os
import re

headers={"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 \
(KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36",
         "Referer":"http://www.xbiquge.la/13/13959/"}
#伪造浏览器访问
url="http://www.xbiquge.la/13/13959/"
res=requests.get(headers=headers,url=url)
res.encoding= res.apparent_encoding
response=res.text
#print(response)

html=etree.HTML(response)
title=html.xpath("//*[@id='list']/dl/dd/a/text()")
#小说每个篇章的标题
title_url=html.xpath("//*[@id='list']/dl/dd/a/@href")
pingjie="http://www.xbiquge.la/"
real_url=[]
#小说每个篇章的地址
for neirong in title_url:
    real_url.append(pingjie+neirong)
#print("\n".join(real_url))
#print("\n".join(x for x in title_url))

os.chdir(os.getcwd())
if not os.path.exists(os.getcwd()+"/book"):
    print("目录不存在,准备创建目录")
    os.mkdir("book")
    os.chdir(os.getcwd()+"/book")
else:
    print("目录已存在")
    os.chdir(os.getcwd()+"/book")


#time.sleep(5)
localpath=os.getcwd()#原始目录
print("\n原始地址是:"+str(localpath))
#time.sleep(20)


for i in range(len(real_url)):

    # os.chdir(localpath)  # 目录重定位,不然会乱
    # # 给定位,然后判断文件夹在不在,若不在则创建
    # realpath = os.getcwd() + os.path.sep + str(title[i])+".txt"
    # if not os.path.exists(realpath):
    #     with open(title[i]+".txt","w")as w:
    #         pass
    #     print('\n文件夹' + str(title[i]) + '不存在,创建完成')
    # else:
    #     print('\n文件夹' + str(title[i]) + '已存在,无需创建')
    #
    #
    # print("\n当前目录是:" + str(os.getcwd()) + "\n")








    res = requests.get(headers=headers, url=real_url[i])
    res.encoding = res.apparent_encoding
    response = res.text
    html = etree.HTML(response)
    word=html.xpath("//*[@id='content']/text()")
    word=str(word)

    c=word.replace(r"\xa0\xa0\xa0\xa0","")
    c=c.replace(r"'\r',","\n")
    c=c.replace(r"\r","")
    c=re.sub(r"[\'\]\[]","",c)
    #c=re.sub(r",$,","",c)
    #print(c)



    with open(title[i]+".txt","w")as f:
        print("正在下载"+str(title[i])+"\n")

        f.write(c)
        print(str(title[i])+"下载完成"+"\n")
        f.write("\n\n================")














效果图:
嗨学网   
嗨学网
是这样的,搞到最后我也没把这后面的逗号去掉,有大神帮小白看看嘛
嗨学网




版权声明:

本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/8027.html

搜索